【问题标题】:Angular 6 package intra-module dependenciesAngular 6 包模块内依赖
【发布时间】: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

我尝试将 pathslib\externals 属性添加到子包 package.json 中的 ngPackage 对象,但这没有帮助。

我做错了什么?

【问题讨论】:

  • 您找到解决方案了吗?
  • 你有没有使用任何工具生成子包?我正在寻找一个工具,因为我有一个需要转换成这种结构的大型库。 ://
  • @Duke 你找到解决办法了吗?

标签: angular angular6 ng-packagr


【解决方案1】:

你当然不能使用相对路径。您应该使用像package-name/path/to/module 这样的绝对路径。

因此,您可以创建多个包(如package-name/corepackage-name/cli 等),也可以使用子条目。我建议您阅读this article 来实现这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-05
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 2013-08-08
    • 2017-10-09
    相关资源
    最近更新 更多