防止删除package.json的脚本部分(库角度)

时间:2018-08-25 11:10:13

标签: angular6

我制作了一个带角度6的库。构建库时,package.json的脚本部分将被删除。 如何防止这种情况?(构建库后需要脚本部分)

如何构建:ng build --prod MyLibraryName

3 个答案:

答案 0 :(得分:5)

Angular库使用ng-packagr包。当您通过cli生成库时,ng-package.jsonng-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
  }
}