场景
由于需要在 Browser 进行大量的计算,所以吾辈开始尝试使用 webworker 分离 CPU 密集型的计算操作,最终找到了 comlink-loader 这个库,但目前在 vue 中使用时发生了错误。
Chrome Comlink-Loader
具体错误
Uncaught Error: Module parse failed: Unexpected token (2:37)
File was processed with these loaders:
* ./node_modules/comlink-loader/dist/comlink-worker-loader.js
* ./node_modules/eslint-loader/index.js
* ./node_modules/eslint-loader/index.js
You may need an additional loader to handle the result of these loaders.
| import { expose } from 'comlink';
> export async function greet(subject: string) {
| return `Hello, ${subject}!`
| }
webpack 配置
module.exports = {
chainWebpack: config => {
config.module
.rule('worker')
.test(/\.worker\.(js|ts)$/i)
.use('comlink-loader')
.loader('comlink-loader')
.tap(options => ({
...options,
singleton: true,
}))
return config
},
}
两个相关的文件
main.ts
// @ts-ignore
import { greet } from './hello.worker.ts'
console.info(greet)
hello.worker.ts
export async function greet(subject: string) {
return `Hello, ${subject}!`
}
吾辈是在什么地方配置错误了么?
问题现已解决,使用了其他的 worker-loader 库。。。
https://blog.rxliuli.com/p/c7...