我有一个具有以下嵌套模块结构的 Angular 6 应用程序:
├── node_modules/
├── package.json <- no mention of ngx-cookie-service
└── src/
└── app/
├── app.module.ts
└── sub-module/
├── node_modules/
├── package.json <- has dependency for ngx-cookie-service
└── sub.module.ts
此结构的目的是子模块可以作为 npm 包发布,并且 appmodule 提供用于使用子模块函数的网站 UI。
尝试为根项目(appmodule)运行ng build --aot
时出现以下错误:
ERROR in ./src/app/app.module.ngfactory.js
Module not found: Error: Can't resolve 'ngx-cookie-service/cookie-
service/cookie.service' in 'myappsrcapp'
笔记:
- 出错的第三方 npm 包
ngx-cookie-service
在sub-module
下的 package.json 中声明为依赖项。 - sub.module.ts 被导入到 app.module.ts 中的@NgModule中
- 如果我在根包.json中添加
ngx-cookie-service
作为devDependency ,则构建成功 - 没有
--aot
的膨胀和服务完美工作
我的第一个问题是:
这是我的配置中的问题还是我应该联系ngx-cookie-service
作者的问题?
还有一个问题:
如何在不为根包.json中添加ngx-cookie-service
依赖项的情况下解决此错误?(因为该应用程序本身不需要cookie服务,只有子模块需要它)
我建议您创建一个角度工作区,您可以在其中创建多个库和应用程序。 https://angular.io/guide/workspace-config
优点
- 您可以将库发布到 npm
- 可以在工作区中与应用共享该库。
阅读这篇文章以更好地理解
https://blog.angularindepth.com/angular-workspace-no-application-for-you-4b451afcc2ba