【发布时间】:2018-07-24 17:58:17
【问题描述】:
我正在尝试创建一个包含多个模块的库,但在模块依赖方面遇到了困难。我正在使用 Angular 6:
"@angular-devkit/build-ng-packagr": "^0.7.0-rc.3",
"@angular-devkit/build-angular": "^0.7.0-rc.3",
"ng-packagr": "^4.0.0",
我首先使用 ng g library package 创建了一个新库,它创建了以下结构
projects
|- package
|- src
| |- lib
| | |- *.ts
| |-public_api.ts
|- ng-package.json
|- package.json
|- tsconfig.lib.json
我想添加一个子包,它有一个依赖于主包的模块。 ng-packagr 用于子包的结构(据我所知)是这样的:
projects
|- package
|- src
| |- lib
| | |- package.module.ts
| |-public_api.ts
|- ng-package.json
|- package.json
|- tsconfig.lib.json
|
|- sub-package
| |-src
| | |- sub-package.module.ts
| |- public_api.ts
| |- package.json
sub-package.module 依赖于 package.module。我不能在 sub-package.module 中使用相对路径进行导入,因为我收到一条错误消息,指出包的所有代码都应该在 rootDir 中。
当我尝试使用添加到 tsconfig 的路径 ng-packagr 时(创建库时),我收到错误 Cannot read property 'isSkipSelf' of null。
我尝试将 paths 和 lib\externals 属性添加到子包 package.json 中的 ngPackage 对象,但这没有帮助。
我做错了什么?
【问题讨论】:
-
您找到解决方案了吗?
-
你有没有使用任何工具生成子包?我正在寻找一个工具,因为我有一个需要转换成这种结构的大型库。 ://
-
@Duke 你找到解决办法了吗?
标签: angular angular6 ng-packagr