【问题标题】:Integrating ng-packagr generated package with Angular CLI app: Module not found将 ng-packagr 生成的包与 Angular CLI 应用程序集成:找不到模块
【发布时间】:2018-06-28 22:26:15
【问题描述】:

这是一个复制它的 repo:https://github.com/dragonflypl/ng-packagr-issue

  1. 我创建了一个简单的包loggingnpm run build 生成库 + 做npm pack
  2. 然后我使用 Angular CLI 生成 fooGui 并通过安装 tgz 的 npm run consume 安装库
  3. fooGui 运行npm run build 抛出:

./src/app/app.component.ngfactory.js 中的错误模块未找到:错误: 无法解析 'logging/src/modules/logging/logger/index' 'C:\XXX\dev\ng-packagr-issue\fooGui\src\app' 解决 “日志/src/模块/日志/记录器/索引”在 'C:\XXX\dev\ng-packagr-issue\fooGui\src\app' 解析的请求是 使用描述文件的模块: C:\XXX\dev\ng-packagr-issue\fooGui\package.json(相对路径: ./src/app) 使用描述文件后,字段“浏览器”不包含有效的别名配置: C:\XXX\dev\ng-packagr-issue\fooGui\package.json(相对路径: ./src/app) 解析为模块 C:\XXX\dev\ng-packagr-issue\fooGui\src\app\node_modules 不存在或不是目录 C:\XXX\dev\ng-packagr-issue\fooGui\src\node_modules 不存在或不是目录 C:\XXX\dev\ng-packagr-issue\node_modules 不存在或不是目录 C:\XXX\dev\node_modules 不存在或不是目录 C:\XXX\node_modules 不存在或不是目录 C:\node_modules 不存在或不是目录 在 C:\XXX\dev\ng-packagr-issue\fooGui\node_modules 中寻找模块 使用描述文件:C:\XXX\dev\ng-packagr-issue\fooGui\package.json(相对路径: ./node_modules) 字段“浏览器”不包含有效的别名配置 使用描述文件后:C:\XXX\dev\ng-packagr-issue\fooGui\package.json(相对路径: ./node_modules) 使用描述文件:C:\XXX\dev\ng-packagr-issue\fooGui\node_modules\logging\package.json (相对路径:./src/modules/logging/logger/index) 没有扩展 字段“浏览器”不包含有效的别名配置 C:\XXX\dev\ng-packagr-issue\fooGui\node_modules\logging\src\modules\logging\logger\index 不存在 .ts 字段“浏览器”不包含有效的别名配置 C:\XXX\dev\ng-packagr-issue\fooGui\node_modules\logging\src\modules\logging\logger\index.ts 不存在 .js 字段“浏览器”不包含有效的别名配置 C:\XXX\dev\ng-packagr-issue\fooGui\node_modules\logging\src\modules\logging\logger\index.js 不存在 作为目录 C:\XXX\dev\ng-packagr-issue\fooGui\node_modules\logging\src\modules\logging\logger\index 不存在

知道我做错了什么还是某处的错误?

【问题讨论】:

  • 使用 npm 链接/取消链接功能代替 "logging": "file:../logging/dist/logging-1.0.0-rc.1.tgz", 或将日志发布到 npm。我并不是说这是问题所在,但已经看到构建工具遇到了file: repos 的问题。
  • 顺便说一句,这是我写的另一个npmjs.com/package/ngx-library-builderng-packager 类似的东西,但您应该在该站点上打开一个问题并尝试修复它。如果您遇到npmjs.com/package/ngx-library-builder 的任何问题,我可以提供帮助。
  • 通过 npm 发布和安装的原始包也会发生同样的情况,但是谢谢
  • @bhantol - 你能看看我的回答吗,我已经修好了,但我不知道为什么会这样:)

标签: angular angular-cli ng-packagr


【解决方案1】:

我找到了罪魁祸首:在公共 api 文件中,我有:

export * from './src/modules/logging/logger';

访问 index.ts。

当我用显式导出替换它时:

export * from './src/modules/logging/logger/logger.service';
export * from './src/modules/logging/logger/log-level.enum';

然后就可以了。但现在的问题是:知道为什么吗?因为我不知道。

【讨论】:

  • 这是我仅在使用 ng-packagr 时遇到的 Angular 编译器的一个(非常令人沮丧的)问题。不支持桶导入,更多信息here.
猜你喜欢
  • 2018-12-11
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多