Tho*_*ter 4 angular angular-library
我已经使用 CLI 创建并捆绑了一个 Angular (7.2.0) 库:
ng g 图书馆 MyLibrary
ng 建立我的图书馆
这给了我my-libary.umd.js我需要的包。
目前,所有依赖项都作为 peerDependencies 添加到库 package.json 中。我想要做的是实际将一些依赖项与库 (.umd) 捆绑在一起。将它们添加为 " dependencies" 而不是 " peerDependencies" 似乎不起作用,我真的不明白有什么区别?
我怎样才能做到这一点?
应捆绑 ngx-spinner 的 package.json 示例
{
"name": "demo-plugin",
"version": "0.0.1",
"peerDependencies": {
"@angular/common": "^7.1.0",
"@angular/core": "^7.1.0"
},
"dependecies": {
"ngx-spinner": "^7.1.4"
},
"bundledDependencies": [
"ngx-spinner"
]
}
Run Code Online (Sandbox Code Playgroud)
你想要的是将它添加到bundledDependencies:
dependencies:当其他人使用您的库时,NPM 会自动安装它们。此处列出的依赖项也需要在 ng-package.json 中列入白名单(“whitelistedNonPeerDependencies”)
peerDependencies:你的库的用户必须安装依赖(将它添加到他自己的 package.json 中)
bundledDependencies:在构建它时,依赖项将与您的库捆绑在一起。这也将捆绑所有可传递的依赖项。如果要停止此链,则需要添加不应捆绑到peerDependencies. 例如,如果您想捆绑依赖于 B 的依赖项 A,您会得到一个包含 A 和 B 的捆绑包。如果您不想捆绑 B,则将其添加到peerDependencies.
您拥有的每个依赖项只能同时出现在其中一个中。因此,要捆绑依赖项,您需要将此依赖项添加到根目录的 package.json(而不是 library-package.json)。你不应该做的是npm install在库文件夹中运行。如果您npm install在 library 文件夹中执行操作并且根 package.json 中没有捆绑的依赖项(因此根 node_modules 文件夹中缺少它),您将成功构建,但依赖项不会包含在构建中( cli 可能应该暗示这一点..)。
长话短说,针对您的具体问题:
| 归档时间: |
|
| 查看次数: |
4288 次 |
| 最近记录: |