在 Angular 8 中使用 web worker 在 CDN 上部署时会出现跨域问题(https://github.com/angular/angular-cli/issues/14901),所以我想使用angular-builder来自定义我的 worker。Angular cli 使用worker-plugin
,我使用worker-loader
来导出inline
工作者。
这是我的代码:
app.module.ts
const worker = new Worker('./app.worker.ts', { type: 'module' });
worker.onmessage = event => {
console.log(`receive message ${event.data}`);
worker.postMessage('Work done!');
};
应用程序.worker.ts
const worker: Worker = self as any;
let i = 0;
function timedCount() {
i = i + 1;
setTimeout(timedCount, 500);
worker.postMessage(`Hi ${i}`);
}
timedCount();
角.json
// ...
"customWebpackConfig": {
"path": "./extra-webpack.config.js",
}
额外的webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.worker\.ts$/,
use: [
{
loader: 'ts-loader'
},
{
loader: 'worker-loader',
options: {
inline: true
}
}
]
}
]
}
};
但是当我运行时出现错误页面ng serve
,如何配置?