我创建了一个共享库并创建了新的应用程序功能库,我想在应用程序功能库中导入共享库。
如何将一个库导入或包含到另一个库中?
最好的方法是将共享库用作应用程序库中的节点依赖项。
示例:如果您通过 npm 命令创建了共享库,如下所示:
ng generate library sharedlib
然后使用以下命令构建您的共享库并在任何公共(npmjs)或私有(您的组织特定,如 JFrog)工件中发布
npm publish sharedlib
并将其用作应用程序库中的依赖项(添加到 package.json)
"peerDependencies": {
"@angular/common": "^7.2.0",
"@angular/core": "^7.2.0",
"sharedlib": "1.0.0"
}
我相信在应用程序库(如果两者都在同一个存储库中)中导入共享库模块(来自 public-api.ts 文件)也可以工作,但这不是最好的方法。
您应该在库的 package.json 中添加您用作 peerDependencies 的任何库。像这样的东西:
"peerDependencies": {
"@angular/common": "^6.0.0-rc.0 || ^6.0.0",
"@angular/core": "^6.0.0-rc.0 || ^6.0.0",
"@angular/forms": "^6.0.0",
"@angular/material": "^6.4.7"
}
假设您已经使用 cli 创建了库ng generate library my-library
,peerDependencies节点已经存在。
如果您的库的用户也使用其他库,这将避免任何冲突。