Angular自定义路径项目执行ng add时找不到/src/app/app.module.ts求助
解决Angular 15.2.5自定义App路径下添加Angular Universal的问题
问题根源
你的项目App目录位于src/main/app,但ng add @nguniversal/express-engine默认会检测src/app路径,因此抛出Path "/src/app/app.module.ts" does not exist错误,导致服务端文件无法生成。之前配置paths或切换目录执行命令的方式,无法覆盖CLI的默认路径检测逻辑。
可行解决方案
方案1:通过CLI参数指定App路径
在项目根目录执行ng add命令时,直接用--app参数指定你的App模块路径:
ng add @nguniversal/express-engine --app ./src/main/app
如果是单项目结构,指定该路径即可;多项目结构则可直接指定angular.json中定义的项目名称。
方案2:修改angular.json的sourceRoot配置
打开根目录的angular.json,找到对应项目的sourceRoot项,将默认的"src"改为"src/main",让CLI自动从新的资源根目录下查找app文件夹:
{ "projects": { "你的项目名称": { "sourceRoot": "src/main", // 其他原有配置... } } }
修改完成后,重新执行ng add @nguniversal/express-engine即可正常生成服务端文件。
方案3:手动创建服务端文件(备选)
若上述方案无效,可手动构建Angular Universal相关文件:
- 在
src/main下创建server.ts,参考官方Universal模板编写代码,注意引入AppModule时使用./app/app.module的路径 - 修改
tsconfig.server.json,将files和include的路径指向src/main/server.ts和src/main/app目录 - 在
angular.json中新增服务端构建配置,指定server.ts路径和输出目录
注意事项
- 修改
angular.json后,需验证ng serve、ng build等命令是否正常工作,如有路径错误需同步调整其他配置 - 执行所有命令时请保持在项目根目录,避免路径混乱
内容的提问来源于stack exchange,提问作者arya Jayan
相关产品推荐
相关产品推荐

