想在vite中使用web worker开发一个工具库。 使用 web worker 上传大文件。
我为新 Worker 使用新 URL。 slice-upload-utils 项目在其他项目中运行正常 by workspace:*,
但是通过 pnpm install slice-upload-utils 在其他项目中使用它,web worker 在“slice-upload-utils”中出错。
我需要帮助。谢谢!
你可以克隆这个。 https://github.com/ywenhao/vite-web-worker-demo https://github.com/ywenhao/slice-upload-utils
复制 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)
})
}