Как добавить дополнительный HTML в index.html во время производственной сборки Angular до того, как будет вычислен его хеш для ngsw.json? - PullRequest
0 голосов
/ 28 декабря 2018

Мне нужно внедрить этот тег в место в скомпилированном index.html после выполнения ng build --prod.

<script>const VERSION = '1.0.0-{someCompileTimeValue}';</script>

Обычно после сборки я бы использовал gulp-inject для ввода этого тега (включаядругие вещи, такие как google analytics, favicons).

Однако, после принятия ng add @angular/pwa, он тихо жалуется на SwCriticalError: Hash mismatch, потому что после хеширования index.html он больше не соответствует хешу в ngsw.json.

Как следствие, .available:

constructor(private updates: SwUpdate){
    interval(5000).pipe(exhaustMap(() => this.updates.checkForUpdate())).subscribe();
    this.updates.available.subscribe(event => console.log('available!'));
}

я никогда не генерировал никаких событий * Я пытался запустить ./node_modules/.bin/ngsw-config dist/ ngsw-config.json вручную, хотя он обновляет хэш index.html в ngsw.json.Он добавляет новые хэши и ссылки для ngsw-worker.js, safety-worker.js и worker-basic.min.js, из которых я чувствую, что не должен быть там.

Если нет 'canon' решение, я бы, вероятно, (используя gulp) хэш index.html и присвоить его ngsw.json запись.

...