mirror of
https://github.com/vitejs/vite.git
synced 2024-11-21 14:48:41 +00:00
fix: legacy no emit worker (#9500)
This commit is contained in:
parent
6d952252c7
commit
9d0b18b1cb
@ -351,14 +351,19 @@ export function webWorkerPlugin(config: ResolvedConfig): Plugin {
|
||||
)
|
||||
}
|
||||
}
|
||||
if (!isWorker) {
|
||||
const workerMap = workerCache.get(config)!
|
||||
workerMap.assets.forEach((asset) => {
|
||||
this.emitFile(asset)
|
||||
workerMap.assets.delete(asset.fileName!)
|
||||
})
|
||||
}
|
||||
return result()
|
||||
},
|
||||
|
||||
generateBundle(opts) {
|
||||
// @ts-ignore asset emits are skipped in legacy bundle
|
||||
if (opts.__vite_skip_asset_emit__ || isWorker) {
|
||||
return
|
||||
}
|
||||
const workerMap = workerCache.get(config)!
|
||||
workerMap.assets.forEach((asset) => {
|
||||
this.emitFile(asset)
|
||||
workerMap.assets.delete(asset.fileName!)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,22 +8,32 @@ import {
|
||||
untilUpdated
|
||||
} from '~utils'
|
||||
|
||||
test('should load the worker', async () => {
|
||||
await untilUpdated(() => page.textContent('.worker-message'), 'module', true)
|
||||
})
|
||||
|
||||
test('should work', async () => {
|
||||
expect(await page.textContent('#app')).toMatch('Hello')
|
||||
await untilUpdated(() => page.textContent('#app'), 'Hello', true)
|
||||
})
|
||||
|
||||
test('import.meta.env.LEGACY', async () => {
|
||||
expect(await page.textContent('#env')).toMatch(isBuild ? 'true' : 'false')
|
||||
await untilUpdated(
|
||||
() => page.textContent('#env'),
|
||||
isBuild ? 'true' : 'false',
|
||||
true
|
||||
)
|
||||
})
|
||||
|
||||
// https://github.com/vitejs/vite/issues/3400
|
||||
test('transpiles down iterators correctly', async () => {
|
||||
expect(await page.textContent('#iterators')).toMatch('hello')
|
||||
await untilUpdated(() => page.textContent('#iterators'), 'hello', true)
|
||||
})
|
||||
|
||||
test('wraps with iife', async () => {
|
||||
expect(await page.textContent('#babel-helpers')).toMatch(
|
||||
'exposed babel helpers: false'
|
||||
await untilUpdated(
|
||||
() => page.textContent('#babel-helpers'),
|
||||
'exposed babel helpers: false',
|
||||
true
|
||||
)
|
||||
})
|
||||
|
||||
|
@ -6,5 +6,7 @@
|
||||
<div id="assets"></div>
|
||||
<button id="dynamic-css-button">dynamic css</button>
|
||||
<div id="dynamic-css"></div>
|
||||
<p>## worker message:</p>
|
||||
<div class="worker-message"></div>
|
||||
<div id="asset-path"></div>
|
||||
<script type="module" src="./main.js"></script>
|
||||
|
@ -1,5 +1,6 @@
|
||||
import './style.css'
|
||||
import viteSvgPath from './vite.svg'
|
||||
import MyWorker from './worker?worker'
|
||||
|
||||
async function run() {
|
||||
const { fn } = await import('./async.js')
|
||||
@ -56,3 +57,9 @@ text('#asset-path', viteSvgPath)
|
||||
function text(el, text) {
|
||||
document.querySelector(el).textContent = text
|
||||
}
|
||||
|
||||
const worker = new MyWorker()
|
||||
worker.postMessage('ping')
|
||||
worker.addEventListener('message', (ev) => {
|
||||
text('.worker-message', JSON.stringify(ev.data))
|
||||
})
|
||||
|
1
playground/legacy/module.js
Normal file
1
playground/legacy/module.js
Normal file
@ -0,0 +1 @@
|
||||
export const module = 'module'
|
5
playground/legacy/worker.js
Normal file
5
playground/legacy/worker.js
Normal file
@ -0,0 +1,5 @@
|
||||
import { module } from './module'
|
||||
|
||||
self.onmessage = () => {
|
||||
self.postMessage(module)
|
||||
}
|
Loading…
Reference in New Issue
Block a user