我有三个不同的 Angular cli 项目(X、Y、Z)。我想将 [X] 作为父项目,同时将 Y 和 Z 作为 npm 包依赖项添加到 X。这意味着 [X] package.json 将包含 [Y] 和 [Z] 的依赖项,如下所示。
"dependencies": {
"@angular/common": "^4.0.0",
//.. other angular dependency
"y": "1.0.1",
"z": "1.0.3"
}
如何创建这些依赖关系?
注意:现在我将 Y 和 Z 作为 X 内的延迟加载文件夹。我想将其解耦为独立的 npm 包。
基本上你想分三步完成:
- 将您的项目“y”和“z”变成一个库
- 将该库打包到 npm-package 中
- 让“x”使用该库
简而言之,您可以这样做:
-
我强烈推荐使用ng-packagr用于根据“y”和“z”创建库。ng-packagr
允许您采取现有的Angular CLI
项目并将其变成一个图书馆。基本上你必须做五件事:
- 安装包:
npm install ng-packagr --save-dev
-
add ng-package.json
包含以下内容:
{
"$schema": "./node_modules/ng-packagr/ng-package.schema.json",
"lib": {
"entryFile": "public_api.ts"
}
}
-
add public_api.ts
与模块的导出,即
export * from './src/app/modules/example/example.module'
添加脚本到package.json
:
"packagr": "ng-packagr -p ng-package.json"
- 运行脚本:
npm run packagr
通过运行创建 npm-packagenpm pack
这将生成一个y-1.0.0.tgz
- 文件,在哪里y
是你的项目名称和1.0.0
您在中设置的版本package.json
现在您可以通过运行将其安装为项目“x”中的依赖项npm install ./relative/path/to/y-1.0.0.tgz
你就完成了!
这篇文章是基于这个article.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)