comlink-loader 工作不正常

场景

由于需要在 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}!`
}

吾辈是在什么地方配置错误了么?

阅读 4.1k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进