嵌套的Angular模块:无法通过npm软件包解析服务

时间:2019-03-21 13:12:10

标签: angular angular-cli

我有一个具有以下嵌套模块结构的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 'myapp\src\app' 

注意:

  • 错误的第三方npm软件包ngx-cookie-servicesub-module下的package.json中声明为依赖项。
  • sub.module.ts导入到app.module.ts中的@NgModule
  • 如果我在根package.json中添加ngx-cookie-service作为devDependency,则构建成功
  • 在没有--aot的情况下进行健身和服务非常完美

我的第一个问题是:

这是我的配置中的问题还是应该与ngx-cookie-service的作者联系的问题?

另一个跟进的问题:

如何解决此错误而不在根package.json中添加对ngx-cookie-service的依赖关系?(因为该应用本身并不需要cookie服务,只有子模块才需要它) )

1 个答案:

答案 0 :(得分:1)

我建议您创建一个有角度的工作区,在其中可以创建多个库和应用程序。 https://angular.io/guide/workspace-config

专业人士

  • 您可以将库发布到npm
  • 您可以在工作区中与您的应用共享该库。

阅读这篇文章以获得更好的理解

https://blog.angularindepth.com/angular-workspace-no-application-for-you-4b451afcc2ba