3

I want to use web worker to develop a tool library in vite. Use web worker to upload big file.

I use new URL for new Worker. The slice-upload-utils project is running normally in other project by workspace:*,

but using it in other project by pnpm install slice-upload-utils,the web worker is error in 'slice-upload-utils ' .

I need help.Thanks!

You can clone this. https://github.com/ywenhao/vite-web-worker-demo https://github.com/ywenhao/slice-upload-utils

Reproduction https://stackblitz.com/edit/vitejs-vite-1szu71?file=src/App.vue

export function getPreHashWorker(file: File) {
  const workURL = new URL('./worker/preHash.worker.ts', import.meta.url)

  return createWorkPromise<{ file: File }, { hash: string }>(workURL, { file })
}

export async function createWorkPromise<Params, Result>(workURL: URL, params: Params): Promise<Result> {
  return new Promise((resolve, reject) => {
    const worker = new Worker(workURL, {
      type: 'module',
    })
    worker.onmessage = (event) => {
      resolve(event.data)
    }
    worker.onerror = (event) => {
      reject(event)
    }
    worker.postMessage(params)
  })
}
ywenhao
  • 31
  • 1

0 Answers0