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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌套的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 'myapp\src\app' 

笔记:

  • 错误的第三方npm包ngx-cookie-servicesub-module下的package.json中被声明为依赖项。
  • sub.module.ts导入app.module.ts中的@NgModule
  • 如果我在根package.json中添加ngx-cookie-service作为devDependency,则构建成功
  • 没有qazxsw poi的建设和服务完美无缺

我的第一个问题是:

这是我的配置中的问题还是我应该联系--aot的作者?

和其他后续问题:

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

答案

我建议您创建一个角度工作区,您可以在其中创建多个库和应用程序。 ngx-cookie-service

Pros

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

阅读这篇文章以便更好地理解

https://angular.io/guide/workspace-config

以上是关于嵌套的Angular模块:无法解析npm包中的服务的主要内容,如果未能解决你的问题,请参考以下文章

Angular 构建 - 未找到模块:错误:无法解析“控制台”

Angular 6 服务器端错误:找不到模块:错误:无法解析“./dist/server/main.bundle”

未找到模块:错误:无法解析“/app”中的“@angular/flex-layout”

无法为 angular-phonecat 教程安装 npm:找不到模块“update-notifier”

更新到 Angular v6 - 找不到模块:错误:无法解析“fs”

Angular + web3.js:找不到模块:错误:无法解析“加密”