如何修改服务工作者文件而不用 ng build --prod 覆盖它
How to modify service worker file without overwriting it with ng build --prod
我想更新我的 service worker 以便我可以接收通知,问题是每次我 运行 ng build --prod 它都会覆盖我的文件。
我使用 Angular CLI 创建了 service worker。如果我理解正确,我需要 运行 ng build --prod 脚本来更新要部署的 dist 文件夹。
我更新了 dist 文件夹中的 ngsw-worker.js,但是当我 运行 构建命令时它被覆盖了。我还必须每次手动将 Web.config 添加到 dist 文件夹。如何在构建中进行这些更改?
构建完成后,您应该复制自己选择的 ngsw-worker.js
请注意,这意味着如果 angular-pwa 升级,您的构建将不稳定,您可能无法获得错误修复或其他改进,因为您没有更新 "your" 文件。
因此包含并安装 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 之后调用它:
节点 scripts/move_file.js
这会将生成的替换为您的。
我想更新我的 service worker 以便我可以接收通知,问题是每次我 运行 ng build --prod 它都会覆盖我的文件。
我使用 Angular CLI 创建了 service worker。如果我理解正确,我需要 运行 ng build --prod 脚本来更新要部署的 dist 文件夹。
我更新了 dist 文件夹中的 ngsw-worker.js,但是当我 运行 构建命令时它被覆盖了。我还必须每次手动将 Web.config 添加到 dist 文件夹。如何在构建中进行这些更改?
构建完成后,您应该复制自己选择的 ngsw-worker.js
请注意,这意味着如果 angular-pwa 升级,您的构建将不稳定,您可能无法获得错误修复或其他改进,因为您没有更新 "your" 文件。
因此包含并安装 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 之后调用它: 节点 scripts/move_file.js
这会将生成的替换为您的。