vite版本
 1"vite": "^4.0.0",
默认导入worker为报404
 1
 2const worker = new Worker(new URL('./worker.js', import.meta.url))
 3
 4import MyWorker from './worker.js?worker';
 5const worker = new MyWorker();
MyWorker文件代码
 1const ctx: Worker = self as any;
 2
 3
 4
 5ctx.onmessage = (res) => {
 6    if (res.data.type === 'ready') {
 7        console.log('收到父线程消息');
 8        ctx.postMessage('子线程准备完毕');
 9    }
10};
11
12
13
14ctx.onerror = (err) => {
15    console.log('收集错误', err);
16};
17export default ctx;
使用MyWorker
 1import myWorker from './worker.ts?worker';
 2var homeWorker = new myWorker();
 3homeWorker.postMessage({type: 'ready'});
 4homeWorker.onmessage = (res) => {
 5    console.log('home收到消息', res.data);
 6};
 7homeWorker.onerror = (err) => {
 8    console.log('home收集到错误', err);
 9    
10    homeWorker.terminate();
11}
使用后控制台打印
个人笔记记录 2021 ~ 2025