对于 260 个字符以下的文件路径,Angular Prerender 会引发 ENAMETOOLONG 错误

问题描述

我正在尝试预渲染大量内容。但是,Angular Prender 会在超过 25 个字符的路径上引发错误。

错误是 An unhandled exception occurred: spawn ENAMETOOLONG

我知道错误的要点是路径不能超过一定长度。在 Windows 上,它是 260 个字符。但是,如果我通过将输出目录和路由路径相加来测量所有路径的长度,则没有任何路由超过 186 个字符,远低于 260 个字符的限制。

我试图通过修改注册表以使用长文件路径并重新启动我的计算机来修复它,但我仍然遇到相同的错误。我相信这是因为 Angular Prerender 进程使用了​​ 32 位 Windows cmd 行。我查看了 @nguniversal\builders\src\prerender 的底层,注意到它使用 fork 方法而不是 spawn 或 exec,这意味着它不会接受 shell 参数。

我也尝试在 Powershell 中运行它,我认为它是 64 位的,但没有运气。

路由文件示例:

/en-us/
/en-us/about
/en-us/register
/en-us/login
/en-us/explore
/en-us/help/support
/en-us/forgot
/en-us/contentcategory/url

环境

Windows 10 64bit
Node 14.15 (64bit)
Angular 10.2.4
@angular-devkit/architect       0.1001.7
@angular-devkit/build-angular   0.1002.3
@angular-devkit/core            10.2.3
@angular-devkit/schematics      10.2.3
@angular/cli                    10.2.3
@nguniversal/builders           10.1.0
@nguniversal/express-engine     10.1.0
@schematics/angular             10.2.3
@schematics/update              0.1002.3
rxjs                            6.5.5
typescript                      4.0.7

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...