0

在 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,如何配置?

4

0 回答 0