我正在尝试创建一个包含多个模块但在模块依赖方面遇到困难的库。我正在使用 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
。
我尝试向子包 package.json 中的 ngPackage 对象添加paths
和lib\externals
属性,但这没有帮助。
我究竟做错了什么?