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)
})
}