嵌套 Angular 模块:无法从 npm 包解析服务



我有一个具有以下嵌套模块结构的 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-servicesub-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

相关内容

  • 没有找到相关文章

最新更新