Как изменить рабочий файл сервиса, не перезаписывая его с помощью ng build --prod - PullRequest
0 голосов
/ 11 июня 2019

Я хочу обновить своего сервисного работника, чтобы я мог получать уведомления, проблема в том, что каждый раз, когда я запускаю ng build - prod, он перезаписывает мои файлы.

Я создал сервисного работника с Angular CLI. Если я правильно понимаю, мне нужно запустить скрипт ng build --prod, чтобы обновить папку dist для развертывания.

Я обновляю ngsw-worker.js в папке dist, но он перезаписывается при запуске команды сборки. Я также должен каждый раз вручную добавлять Web.config в папку dist. Как принять эти изменения в сборке?

1 Ответ

0 голосов
/ 13 июня 2019

После сборки вы должны скопировать по своему выбору 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!')
  }
});

И, наконец, вызовите это после сборки ng с помощью команды npm: node scripts / move_file.js

Это заменит сгенерированный на ваш.

...