Skip to content

Commit 317a2bf

Browse files
committed
Skip react-refresh on SSR (Fix #2) [publish]
1 parent b5ca646 commit 317a2bf

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## 2.2.1
4+
5+
Skip react-refresh on SSR (Fixes [#2](https://github.com/ArnaudBarre/vite-plugin-swc-react-refresh/issues/2))
6+
37
## 2.2.0
48

59
- Always provide parser options to fix issue with `.jsx` imports. Relying on file extension for this is more buggy [than I though](https://github.com/swc-project/swc/issues/3297)

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vite-plugin-swc-react-refresh",
3-
"version": "2.2.0",
3+
"version": "2.2.1",
44
"license": "MIT",
55
"scripts": {
66
"build": "scripts/bundle.ts",

src/index.ts

+5-9
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export const swcReactRefresh = (): PluginOption => ({
4646
transformIndexHtml: () => [
4747
{ tag: "script", attrs: { type: "module" }, children: preambleCode },
4848
],
49-
async transform(code, id) {
49+
async transform(code, id, transformOptions) {
5050
if (id.includes("node_modules")) return;
5151
const parser = parserMap.get(extname(id));
5252
if (!parser) return;
@@ -63,7 +63,7 @@ export const swcReactRefresh = (): PluginOption => ({
6363
parser,
6464
transform: {
6565
react: {
66-
refresh: true,
66+
refresh: !transformOptions?.ssr,
6767
development: true,
6868
useBuiltins: true,
6969
runtime: automaticRuntime ? "automatic" : undefined,
@@ -96,16 +96,12 @@ export const swcReactRefresh = (): PluginOption => ({
9696
}
9797

9898
if (result.code.includes("$RefreshReg$")) {
99-
mappingPrefix += ";;;;;;;;;;;;";
99+
mappingPrefix += ";;;;;;;;";
100100
result.code = `import * as RefreshRuntime from "${runtimePublicPath}";
101101
102-
let prevRefreshReg;
103-
let prevRefreshSig;
104-
105102
if (!window.$RefreshReg$) throw new Error("React refresh preamble was not loaded. Something is wrong.");
106-
107-
prevRefreshReg = window.$RefreshReg$;
108-
prevRefreshSig = window.$RefreshSig$;
103+
const prevRefreshReg = window.$RefreshReg$;
104+
const prevRefreshSig = window.$RefreshSig$;
109105
window.$RefreshReg$ = RefreshRuntime.getRefreshReg("${id}");
110106
window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;
111107

0 commit comments

Comments
 (0)