Eri*_*ton 39 angular-cli angular-cli-v6
我正在转换库(ng-app-state)以使用angular cli,现在v6支持库(yay!).
在一些代码中进行脚手架和复制之后,这是我的第一个问题:
我如何/在哪里添加第三方依赖项?
到package.json,或到projects/ng-app-state/package.json?
Eri*_*ton 27
事实证明答案是"两种".理解答案来自:
package.json是在开发过程中使用的.实际上,您可以在此处安装所有库以供自己使用,包括用户也需要的库.您应该只node_modules/在项目的根目录中有一个目录,而不是在库的目录中(所以npm install这里只运行和类似).projects/ng-app-state/package.json是什么将部署到npm(由构建过程添加一些额外的字段).因此,复制dependencies和/或peerDependencies您的库的用户将需要.放在devDependencies这里毫无意义.这是完整的答案.请继续阅读以查看示例.
在我的情况下package.json有很多很多dependencies和devDependencies(你可以在这里看到),但所有这些只影响我(和任何想要贡献的人ng-app-state).projects/ng-app-state/package.json是小得多,这是影响我的图书馆用户的:
{
"name": "ng-app-state",
"version": "8.0.0",
"author": "Simonton Software",
"license": "MIT",
"repository": "simontonsoftware/ng-app-state",
"peerDependencies": {
"@angular/common": ">=6.0.0 <7.0.0",
"@angular/core": ">=6.0.0 <7.0.0",
"@ngrx/store": ">=6.0.0 <7.0.0",
"micro-dash": ">=3.5.0 <4.0.0"
}
}
Run Code Online (Sandbox Code Playgroud)
在运行ng build np-app-state --prod以生成将发布到npm的内容之后,这就是最终结果dist/ng-app-state/(应该发布的内容):
{
"name": "ng-app-state",
"version": "8.0.0",
"author": "Simonton Software",
"license": "MIT",
"repository": "simontonsoftware/ng-app-state",
"peerDependencies": {
"@angular/common": ">=6.0.0 <7.0.0",
"@angular/core": ">=6.0.0 <7.0.0",
"@ngrx/store": ">=6.0.0 <7.0.0",
"micro-dash": ">=3.5.0 <4.0.0"
},
"main": "bundles/ng-app-state.umd.js",
"module": "fesm5/ng-app-state.js",
"es2015": "fesm2015/ng-app-state.js",
"esm5": "esm5/ng-app-state.js",
"esm2015": "esm2015/ng-app-state.js",
"fesm5": "fesm5/ng-app-state.js",
"fesm2015": "fesm2015/ng-app-state.js",
"typings": "ng-app-state.d.ts",
"metadata": "ng-app-state.metadata.json",
"sideEffects": false,
"dependencies": {
"tslib": "^1.9.0"
}
}
Run Code Online (Sandbox Code Playgroud)
Lal*_*Lal 12
它应该添加package.json为peerDependencies
| 归档时间: |
|
| 查看次数: |
16038 次 |
| 最近记录: |