Angular12迁移添加postinstall ngcc后npm install出现tsconfig警告如何解决
问题解决说明
最优解决方案
这个警告的触发原因是你当前使用的根目录tsconfig.json为解决方案风格配置,仅包含子项目引用,没有实际的编译配置项,ngcc无法从中读取路径映射等编译参数。
普通单项目场景下直接修改package.json中postinstall配置,指定ngcc使用业务代码对应的tsconfig即可:
"postinstall": "ngcc --tsconfig ./src/tsconfig.app.json"
修改后的完整scripts配置如下:
"scripts": { "ng": "ng", "start": "ng serve", "dev": "ng serve -c dev --watch=false", "postinstall": "ngcc --tsconfig ./src/tsconfig.app.json", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }
如果是多项目monorepo场景,可根据实际需要处理的项目,指定对应的tsconfig文件即可;如果需要同时适配多个项目的配置,可依次执行多个ngcc命令分别指定不同的tsconfig。
该方案的优势:
- 可以正确读取到业务配置中的路径别名、自定义编译参数,避免后续依赖解析错误
- 仅处理业务相关依赖,ngcc执行速度更快
- 从根源解决警告触发原因,没有遗留隐患
能否直接隐藏警告
可以但不推荐。
如果直接按照提示指定根目录的tsconfig.json来隐藏警告,虽然不会再出现提示,但ngcc无法读取到实际生效的编译配置,如果你的项目使用了路径别名、自定义编译规则,后续会大概率出现运行时依赖找不到的问题,排查成本很高。仅当你确认项目无任何自定义ts配置、不需要路径映射时,才可以用这种方式临时消警。
内容的提问来源于stack exchange,提问作者Rômulo Sorato
相关产品推荐
相关产品推荐

