问题描述
我正在尝试预渲染大量内容。但是,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 (将#修改为@)