Angular6 阻止删除package.json的脚本部分(库)
我做了一个有角的图书馆。构建库时,Angular6 阻止删除package.json的脚本部分(库),angular6,Angular6,我做了一个有角的图书馆。构建库时,package.json的脚本部分将被删除。 我如何防止这种情况?(我需要在构建库后使用脚本部分) 如何构建:ngbuild--prod MyLibraryNameAngular库使用ngpackagr包。通过cli生成库时,ng package.json和ng package.prod.json将添加到库中。(用于设置包) 如果将“keeplifecycleDescripts”:true添加到ng package.prod.json中,则在构建库时不会删除pa
package.json
的脚本部分将被删除。
我如何防止这种情况?(我需要在构建库后使用脚本部分)
如何构建:
ngbuild--prod MyLibraryName
Angular库使用ngpackagr
包。通过cli生成库时,ng package.json
和ng package.prod.json
将添加到库中。(用于设置包)
如果将
“keeplifecycleDescripts”:true
添加到ng package.prod.json
中,则在构建库时不会删除package.json
的脚本部分。由于ng Packager的版本2.3.0,您需要将keepLifecycleScripts标志添加到package.json,而不是ng-package.prod.json:
{
"name": "xyz",
"version": "1.0.0",
"scripts": {
"prepare": "..."
},
"ngPackage": {
"keepLifecycleScripts": true
}
}
如果有人遇到与我相同的问题,我会提供帮助: 在我按照Morzeta的描述编辑了package.json之后,执行
ngbuild--prod
会导致最终构建的不同目标路径。默认值为{workspace}/dist/{projectName}
,更改后变为projects/{projectName}/dist
我费了好大劲才找到发生这种事的原因。在node_模块上调试ng Packager时,我发现当您按照所述配置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
}
}
从ng packagr v9开始,这似乎不再有任何效果,即使
keepLifecycleScripts
仍在其JSON模式中,脚本仍在构建过程中被剥离,并将其设置为true
。