Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular6 阻止删除package.json的脚本部分(库)_Angular6 - Fatal编程技术网

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