【发布时间】:2019-04-05 14:59:01
【问题描述】:
我正在尝试在我现有的 Angular 7.0.1 项目(中型项目)中进行网络工作者设置。我在通过以下链接后进行了设置:
- Web workers setup for Angular 4 app
- Angular 6+ 应用程序的 Webpack 配置更改 - library 和 related article
这是我在每个文件中所做的更改:
./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"
}
}
这里是demo。您可能想查看我的research notes。
我可能走错了方向,因为我只需要在 Angular 项目中包含并运行一个 Angular Service Worker 库(这应该非常简单)。
我尝试包含 webworker 的主要目的是让 web 应用程序在多线程上运行,以便屏幕上的动画、复选框、自定义下拉和滚动效果能够流畅地执行。
【问题讨论】:
-
喜欢你的研究笔记哈哈,
-
@Mr_Green 我也有同样的问题。似乎代码没有在加载的worker .workerLoader.ts 文件上运行!不执行日志。你有成就吗?
-
@Serginho nope.. 幸运/不幸的是,这不再是要求。
-
我记得我在 Angular4(Ionic 3 项目)中使用了 webworker,但我将 worker 保留为一个独立的 javascript 文件,我在 index.html 上手动注入......不能更具体,因为这是我的旧工作,我现在无法访问代码。
标签: angular typescript webpack web-worker angular7