Skip to content

Commit 3df14a7

Browse files
authored
Fix Parcel HMR (codesandbox#701)
* Use HMR API on Parcel template * Fix direct css entries
1 parent 07f1638 commit 3df14a7

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

packages/app/src/sandbox/eval/manager.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ export default class Manager {
107107
this.webpackHMR = false;
108108
this.hardReload = false;
109109
this.hmrStatus = 'idle';
110+
this.isFirstLoad = true;
110111
this.transpiledModulesByHash = {};
111112
this.configurations = {};
112113

@@ -195,7 +196,7 @@ export default class Manager {
195196
}
196197

197198
evaluateModule(module: Module, force: boolean = false) {
198-
if (this.hardReload) {
199+
if (this.hardReload && !this.isFirstLoad) {
199200
// Do a hard reload
200201
document.location.reload();
201202
return {};
@@ -600,6 +601,7 @@ export default class Manager {
600601
updateData(modules: { [path: string]: Module }) {
601602
this.transpileJobs = {};
602603
this.hardReload = false;
604+
this.isFirstLoad = false;
603605

604606
this.modules = modules;
605607

packages/app/src/sandbox/eval/presets/parcel/transpilers/html-worker.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ self.addEventListener('message', async event => {
7272
self.postMessage({
7373
type: 'add-dependency',
7474
path: assetPath,
75-
isEntry: true,
7675
});
7776

7877
resources.push(assetPath);
@@ -158,7 +157,8 @@ setupHTML();
158157
resources.forEach(resource => {
159158
const resourcePath = JSON.stringify(resource);
160159
compiledCode += `\n`;
161-
compiledCode += `\trequire(${resourcePath});`;
160+
compiledCode += `\trequire(${resourcePath});\n`;
161+
compiledCode += `\tmodule.hot.accept(${resourcePath});`;
162162
});
163163
compiledCode += '\n}';
164164

packages/app/src/sandbox/eval/transpiled-module.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ export default class TranspiledModule {
598598
.some(t => t.transpiler.HMREnabled);
599599

600600
if (!hasHMR) {
601-
manager.clearCompiledCache();
601+
manager.markHardReload();
602602
} else {
603603
this.resetCompilation();
604604
}

0 commit comments

Comments
 (0)