Angular Universal Express prerender 使用了错误的路径 src/src 而不仅仅是 src/
Angular Universal Express prerender using wrong path src/src instead of just src/
我正在我的 Angular 11 项目中尝试 npm run prerender
命令,但出现此错误:
Generating browser application bundles...Error: ENOENT: no such file or directory, open '/home/xyz/edApp3b/src/src/main.server.ts'
at Object.openSync (fs.js:476:3)
at Object.readFileSync (fs.js:377:35)
at NodeJSFileSystem.NodeJSReadonlyFileSystem.readFile (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/src/ngtsc/file_system/src/node_js_file_system.js:98:23)
at EsmDependencyHost.DependencyHostBase.recursivelyCollectDependencies (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/dependencies/dependency_host.js:81:40)
at EsmDependencyHost.DependencyHostBase.processFile (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/dependencies/dependency_host.js:136:22)
at EsmDependencyHost.DependencyHostBase.collectDependenciesInFiles (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/dependencies/dependency_host.js:56:26)
at ProgramBasedEntryPointFinder.getInitialEntryPointPaths (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/program_based_entry_point_finder.js:49:18)
at ProgramBasedEntryPointFinder.TracingEntryPointFinder.findEntryPoints (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/tracing_entry_point_finder.js:45:41)
at /home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/execution/analyze_entry_points.js:28:41
at new ClusterMaster (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/execution/cluster/master.js:45:30)
正如您在错误输出的第一行中看到的那样,它正在 src/src/
中寻找 main.server.ts
而不仅仅是 src/
...这是为什么呢?我该如何解决?
我刚刚用 ng add @nguniversal/express-engine
安装了 express 引擎,仅此而已。所以我自己没有做任何配置。我一直在查看配置文件,但没有与预渲染和路径相关的明显值。
配置在tsconfig.server.json
。您可以在那里更改所需文件的路径(main.server.ts
和 server.ts
是默认值)。您可能还需要将路径更新为 servers.ts
"files": [
"main.server.ts",
"../server.ts"
],
我正在我的 Angular 11 项目中尝试 npm run prerender
命令,但出现此错误:
Generating browser application bundles...Error: ENOENT: no such file or directory, open '/home/xyz/edApp3b/src/src/main.server.ts'
at Object.openSync (fs.js:476:3)
at Object.readFileSync (fs.js:377:35)
at NodeJSFileSystem.NodeJSReadonlyFileSystem.readFile (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/src/ngtsc/file_system/src/node_js_file_system.js:98:23)
at EsmDependencyHost.DependencyHostBase.recursivelyCollectDependencies (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/dependencies/dependency_host.js:81:40)
at EsmDependencyHost.DependencyHostBase.processFile (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/dependencies/dependency_host.js:136:22)
at EsmDependencyHost.DependencyHostBase.collectDependenciesInFiles (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/dependencies/dependency_host.js:56:26)
at ProgramBasedEntryPointFinder.getInitialEntryPointPaths (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/program_based_entry_point_finder.js:49:18)
at ProgramBasedEntryPointFinder.TracingEntryPointFinder.findEntryPoints (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/entry_point_finder/tracing_entry_point_finder.js:45:41)
at /home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/execution/analyze_entry_points.js:28:41
at new ClusterMaster (/home/xyz/edApp3b/node_modules/@angular/compiler-cli/ngcc/src/execution/cluster/master.js:45:30)
正如您在错误输出的第一行中看到的那样,它正在 src/src/
中寻找 main.server.ts
而不仅仅是 src/
...这是为什么呢?我该如何解决?
我刚刚用 ng add @nguniversal/express-engine
安装了 express 引擎,仅此而已。所以我自己没有做任何配置。我一直在查看配置文件,但没有与预渲染和路径相关的明显值。
配置在tsconfig.server.json
。您可以在那里更改所需文件的路径(main.server.ts
和 server.ts
是默认值)。您可能还需要将路径更新为 servers.ts
"files": [
"main.server.ts",
"../server.ts"
],