Я пытаюсь выполнить настройку веб-работника в моем существующем проекте Angular 7.0.1 (проект среднего масштаба). Я сделал настройку после перехода по следующим ссылкам:
- Настройка веб-приложений для приложения Angular 4
- Изменение конфигурации Webpack для приложения Angular 6+ - библиотека и соответствующая статья
Вот мои изменения в каждом файле:
. /src/main.ts
import 'zone.js';
import { enableProdMode } from '@angular/core';
import { bootstrapWorkerUi } from '@angular/platform-webworker';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
console.log("main.ts file loaded!");
bootstrapWorkerUi('webworker.js');
. /src/workerLoader.ts
import 'polyfills.ts';
import '@angular/core';
import '@angular/common';
console.log("workerLoader.ts file loaded!");
import { platformWorkerAppDynamic } from '@angular/platform-webworker-dynamic';
import { AppModule } from './app/app.module';
platformWorkerAppDynamic().bootstrapModule(AppModule);
. /angular.json
"projects": {
"[project name]": {
"architect": {
"build": {
"builder": "@angular-builders/custom-webpack:browser",
"options": {
"customWebpackConfig": {
"path": "./extra-webpack.config.js"
}
...
...
}
}
}
}
}
. /extra-webpack.config.js
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
"entry": {
"webworker": [
"./src/workerLoader.ts"
]
},
"plugins": [
new HtmlWebpackPlugin({
"excludeChunks": [
"webworker"
],
})
],
"output": {
"globalObject": 'this'
}
}
. /tsconfig.json
{
...
...
"angularCompilerOptions": {
"entryModule": "./app/app.module#AppModule"
}
}
Вот демо. Вы можете проверить мои исследовательские заметки.
Возможно, я иду в совершенно неверном направлении, потому что мне просто нужно включить и запустить библиотеку Angular Service Worker в проекте Angular (что должно быть очень просто).
Мое основное намерение попытаться включить веб-работника - позволить веб-приложению работать в многопоточном режиме, чтобы анимации, флажки, настраиваемые выпадающие и прокручиваемые эффекты на экране работали плавно.