Skip to content

Commit

Permalink
fix: legacy no emit worker (#9500)
Browse files Browse the repository at this point in the history
  • Loading branch information
poyoho committed Aug 10, 2022
1 parent 6d95225 commit 9d0b18b
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 12 deletions.
19 changes: 12 additions & 7 deletions packages/vite/src/node/plugins/worker.ts
Expand Up @@ -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!)
})
}
}
}
20 changes: 15 additions & 5 deletions playground/legacy/__tests__/legacy.spec.ts
Expand Up @@ -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
)
})

Expand Down
2 changes: 2 additions & 0 deletions playground/legacy/index.html
Expand Up @@ -6,5 +6,7 @@ <h1 id="app"></h1>
<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>
7 changes: 7 additions & 0 deletions playground/legacy/main.js
@@ -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')
Expand Down Expand Up @@ -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 change: 1 addition & 0 deletions playground/legacy/module.js
@@ -0,0 +1 @@
export const module = 'module'
5 changes: 5 additions & 0 deletions playground/legacy/worker.js
@@ -0,0 +1,5 @@
import { module } from './module'

self.onmessage = () => {
self.postMessage(module)
}

0 comments on commit 9d0b18b

Please sign in to comment.