angular - Angular 6 包模块内依赖
问题描述
我正在尝试创建一个包含多个模块但在模块依赖方面遇到困难的库。我正在使用 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
属性,但这没有帮助。
我究竟做错了什么?
解决方案
你当然不能使用相对路径。您应该使用绝对路径,例如package-name/path/to/module
.
因此,您可以创建多个包(如package-name/core
、package-name/cli
等),也可以使用子条目。我建议你阅读这篇文章来实现这一点。
推荐阅读
- swift - Swift SIL 中的@sil_stored 剂量是什么意思?
- python - tensorflow梯度 - 获取所有nan值
- python - 如何从 gradle 为 python 生成 gRPC 存根
- apache - 具有 RewriteRule 和别名 Apache 的 VirtualHost 无法正常工作
- scala - 在 Zookeeper 为新主人恢复后 Spark Worker“死亡”状态
- javascript - 从右到左反应原生 - 本地化
- python - 熊猫数据框打印字符串+更改变量
- indexing - Cosmos DB - 如何删除唯一索引
- html - 根据选项属性更改选择背景图像
- mysql - 简化更新/插入条件 SQL