我制作了一个带角度6的库。构建库时,package.json
的脚本部分将被删除。
如何防止这种情况?(构建库后需要脚本部分)
如何构建:ng build --prod MyLibraryName
答案 0 :(得分:5)
Angular库使用ng-packagr
包。当您通过cli生成库时,ng-package.json
和ng-package.prod.json
将添加到您的库中。(用于设置软件包)
如果将"keepLifecycleScripts": true
添加到ng-package.prod.json
,则在构建库时不会删除package.json
的脚本部分。
答案 1 :(得分:0)
从ng-packagr版本2.3.0开始,您需要将keepLifecycleScripts-flag添加到package.json,而不是ng-package.prod.json:
{
"name": "xyz",
"version": "1.0.0",
"scripts": {
"prepare": "..."
},
"ngPackage": {
"keepLifecycleScripts": true
}
}
答案 2 :(得分:0)
如果有人遇到与我同样的问题,可以帮忙
按照Morzeta的描述编辑package.json之后,执行ng build --prod
会为最终构建生成不同的目标路径。默认值为{workspace}/dist/{projectName}
,更改后为projects/{projectName}/dist
。
我很难找出原因。在node_modules上调试ng-packagr时,我发现在按说明配置package.json时,将dest属性解析为projects/{projectName}/dist
,解决方案是将dest属性再次放置在package.json上:
{
"name": "xyz",
"version": "1.0.0",
"scripts": {
"prepare": "..."
},
"ngPackage": {
"dest": "../../dist/{your-project-name-here}",
"keepLifecycleScripts": true
}
}