Skip to content

Commit 80f6869

Browse files
authored
perf: wrap dynamic import to skip analysis of dynamic imports (#143)
1 parent 25b652b commit 80f6869

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

packages/plugin-react/src/fast-refresh.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ if (import.meta.hot) {
5555
window.$RefreshReg$ = prevRefreshReg;
5656
window.$RefreshSig$ = prevRefreshSig;
5757
58-
import(/* @vite-ignore */ import.meta.url).then((currentExports) => {
58+
RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => {
5959
RefreshRuntime.registerExportsForReactRefresh(__SOURCE__, currentExports);
6060
import.meta.hot.accept((nextExports) => {
6161
if (!nextExports) return;

packages/plugin-react/src/refreshUtils.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,13 @@ function predicateOnExport(moduleExports, predicate) {
6666
return true
6767
}
6868

69+
// Hides vite-ignored dynamic import so that Vite can skip analysis if no other
70+
// dynamic import is present (https://github.com/vitejs/vite/pull/12732)
71+
function __hmr_import(module) {
72+
return import(/* @vite-ignore */ module)
73+
}
74+
75+
exports.__hmr_import = __hmr_import
6976
exports.registerExportsForReactRefresh = registerExportsForReactRefresh
7077
exports.validateRefreshBoundaryAndEnqueueUpdate =
7178
validateRefreshBoundaryAndEnqueueUpdate

0 commit comments

Comments
 (0)