如何修改服务工作者文件而不用ng build --prod覆盖它

时间:2019-06-11 14:14:41

标签: angular-service-worker

我想更新我的服务人员,以便我可以收到通知,问题是每次我运行ng build --prod都会覆盖我的文件。

我使用Angular CLI创建了服务工作者。如果我理解正确,则需要运行ng build --prod脚本来更新要部署的dist文件夹。

我更新了dist文件夹中的ngsw-worker.js,但是当我运行build命令时,它会被覆盖。我还必须每次都将Web.config手动添加到dist文件夹。如何在构建中进行这些更改?

1 个答案:

答案 0 :(得分:0)

构建后,您应该复制自己选择的ngsw-worker.js

请注意,这意味着如果对angular-pwa进行升级,您的构建将变得不稳定,因为您没有更新“您的”文件,因此可能无法获得错误修复或其他改进。

因此,包括并安装fs-extra:

npm i fs-extra --save-dev

该软件包应显示在您的devDependencies中:

"fs-extra": "^8.0.1",

然后,您应该将文件复制到脚本中(将脚本保存到新目录),并将其命名为move_file.js或类似文件:

const fs = require('fs-extra');
fs.copy('./src/app/my-ngsw-worker.js', './dist/ngsw-worker.js', err => {
  if (err) {
    return console.error(err)
  } else {
    console.log('success!')
  }
});

最后在使用npm命令进行ng构建后调用此命令: 节点脚本/move_file.js

这将用您的替换一个。