@rspack/plugin-react-refresh 1.4.3 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -2
- package/client/reactRefresh.js +9 -1
- package/dist/index.js +6 -0
- package/dist/options.d.ts +12 -3
- package/package.json +11 -13
package/README.md
CHANGED
|
@@ -36,7 +36,6 @@ Import the plugin in your code:
|
|
|
36
36
|
```js
|
|
37
37
|
// Named import (recommended)
|
|
38
38
|
import { ReactRefreshRspackPlugin } from "@rspack/plugin-react-refresh";
|
|
39
|
-
|
|
40
39
|
```
|
|
41
40
|
|
|
42
41
|
- CommonJS:
|
|
@@ -101,12 +100,31 @@ Compared to the previous approach, this method decouples the React Fast Refresh
|
|
|
101
100
|
|
|
102
101
|
## Options
|
|
103
102
|
|
|
103
|
+
### test
|
|
104
|
+
|
|
105
|
+
- Type: [Rspack.RuleSetCondition](https://rspack.dev/config/module#condition)
|
|
106
|
+
- Default: `undefined`
|
|
107
|
+
|
|
108
|
+
Specifies which files should be processed by the React Refresh loader. This option is passed to the `builtin:react-refresh-loader` as the `rule.test` condition.
|
|
109
|
+
|
|
110
|
+
Works identically to Rspack's [rule.test](https://rspack.dev/config/module#ruletest) option.
|
|
111
|
+
|
|
112
|
+
```js
|
|
113
|
+
new ReactRefreshPlugin({
|
|
114
|
+
test: [/\.jsx$/, /\.tsx$/],
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
104
118
|
### include
|
|
105
119
|
|
|
106
120
|
- Type: [Rspack.RuleSetCondition](https://rspack.dev/config/module#condition)
|
|
107
121
|
- Default: `/\.([cm]js|[jt]sx?|flow)$/i`
|
|
108
122
|
|
|
109
|
-
|
|
123
|
+
Explicitly includes files to be processed by the React Refresh loader. This option is passed to the `builtin:react-refresh-loader` as the `rule.include` condition.
|
|
124
|
+
|
|
125
|
+
Use this to limit processing to specific directories or file patterns.
|
|
126
|
+
|
|
127
|
+
Works identically to Rspack's [rule.include](https://rspack.dev/config/module#ruleinclude) option.
|
|
110
128
|
|
|
111
129
|
```js
|
|
112
130
|
new ReactRefreshPlugin({
|
package/client/reactRefresh.js
CHANGED
|
@@ -6,7 +6,15 @@ const RefreshRuntime = require('react-refresh/runtime');
|
|
|
6
6
|
function refresh(moduleId, webpackHot) {
|
|
7
7
|
const currentExports = RefreshUtils.getModuleExports(moduleId);
|
|
8
8
|
const fn = (exports) => {
|
|
9
|
-
|
|
9
|
+
var errorOverlay;
|
|
10
|
+
if (typeof __react_refresh_error_overlay__ !== 'undefined') {
|
|
11
|
+
errorOverlay = __react_refresh_error_overlay__;
|
|
12
|
+
}
|
|
13
|
+
var testMode;
|
|
14
|
+
if (typeof __react_refresh_test__ !== 'undefined') {
|
|
15
|
+
testMode = __react_refresh_test__;
|
|
16
|
+
}
|
|
17
|
+
RefreshUtils.executeRuntime(exports, moduleId, webpackHot, errorOverlay, testMode);
|
|
10
18
|
};
|
|
11
19
|
if (typeof Promise !== 'undefined' && currentExports instanceof Promise) {
|
|
12
20
|
currentExports.then(fn);
|
package/dist/index.js
CHANGED
|
@@ -58,6 +58,7 @@ class ReactRefreshRspackPlugin {
|
|
|
58
58
|
}).apply(compiler);
|
|
59
59
|
if (this.options.injectLoader) {
|
|
60
60
|
compiler.options.module.rules.unshift({
|
|
61
|
+
test: this.options.test,
|
|
61
62
|
// biome-ignore lint: exists
|
|
62
63
|
include: this.options.include,
|
|
63
64
|
exclude: {
|
|
@@ -65,6 +66,11 @@ class ReactRefreshRspackPlugin {
|
|
|
65
66
|
or: [this.options.exclude, [...paths_1.runtimePaths]].filter(Boolean),
|
|
66
67
|
},
|
|
67
68
|
resourceQuery: this.options.resourceQuery,
|
|
69
|
+
dependency: {
|
|
70
|
+
// `new URL("static/sdk.js", import.meta.url)` the sdk.js is an asset module
|
|
71
|
+
// we shoudn't inject react refresh for asset module
|
|
72
|
+
not: ['url'],
|
|
73
|
+
},
|
|
68
74
|
use: ReactRefreshRspackPlugin.loader,
|
|
69
75
|
});
|
|
70
76
|
}
|
package/dist/options.d.ts
CHANGED
|
@@ -11,11 +11,20 @@ interface OverlayOptions {
|
|
|
11
11
|
}
|
|
12
12
|
export type PluginOptions = {
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* Specifies which files should be processed by the React Refresh loader.
|
|
15
|
+
* This option is passed to the `builtin:react-refresh-loader` as the `rule.test` condition.
|
|
16
|
+
* Works identically to Rspack's `rule.test` option.
|
|
17
17
|
* @see https://rspack.dev/config/module#ruletest
|
|
18
18
|
*/
|
|
19
|
+
test?: RuleSetCondition;
|
|
20
|
+
/**
|
|
21
|
+
* Explicitly includes files to be processed by the React Refresh loader.
|
|
22
|
+
* This option is passed to the `builtin:react-refresh-loader` as the `rule.include` condition.
|
|
23
|
+
* Use this to limit processing to specific directories or file patterns.
|
|
24
|
+
* Works identically to Rspack's `rule.include` option.
|
|
25
|
+
* @default /\.([cm]js|[jt]sx?|flow)$/i
|
|
26
|
+
* @see https://rspack.dev/config/module#ruleinclude
|
|
27
|
+
*/
|
|
19
28
|
include?: RuleSetCondition | null;
|
|
20
29
|
/**
|
|
21
30
|
* Exclude files from being processed by the plugin.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rspack/plugin-react-refresh",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"repository": "https://github.com/rspack-contrib/rspack-plugin-react-refresh",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "React refresh plugin for Rspack",
|
|
@@ -32,24 +32,23 @@
|
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@biomejs/biome": "^1.9.4",
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@rspack/core": "1.3.8",
|
|
35
|
+
"@rslib/core": "^0.11.0",
|
|
36
|
+
"@rspack/core": "1.4.11",
|
|
38
37
|
"@types/jest": "29.5.14",
|
|
39
|
-
"@types/node": "^22.
|
|
40
|
-
"cross-env": "^
|
|
41
|
-
"execa": "9.
|
|
38
|
+
"@types/node": "^22.17.0",
|
|
39
|
+
"cross-env": "^10.0.0",
|
|
40
|
+
"execa": "9.6.0",
|
|
42
41
|
"fs-extra": "11.3.0",
|
|
43
42
|
"jest": "29.7.0",
|
|
44
43
|
"jest-cli": "29.7.0",
|
|
45
44
|
"jest-environment-node": "29.7.0",
|
|
46
45
|
"nano-staged": "^0.8.0",
|
|
47
46
|
"react-refresh": "^0.17.0",
|
|
48
|
-
"semver": "7.7.
|
|
49
|
-
"simple-git-hooks": "^2.13.
|
|
50
|
-
"ts-jest": "29.
|
|
47
|
+
"semver": "7.7.2",
|
|
48
|
+
"simple-git-hooks": "^2.13.1",
|
|
49
|
+
"ts-jest": "29.4.0",
|
|
51
50
|
"ts-node": "^10.9.2",
|
|
52
|
-
"typescript": "5.
|
|
51
|
+
"typescript": "5.9.2"
|
|
53
52
|
},
|
|
54
53
|
"dependencies": {
|
|
55
54
|
"error-stack-parser": "^2.1.4",
|
|
@@ -66,8 +65,7 @@
|
|
|
66
65
|
},
|
|
67
66
|
"publishConfig": {
|
|
68
67
|
"access": "public",
|
|
69
|
-
"registry": "https://registry.npmjs.org/"
|
|
70
|
-
"provenance": true
|
|
68
|
+
"registry": "https://registry.npmjs.org/"
|
|
71
69
|
},
|
|
72
70
|
"scripts": {
|
|
73
71
|
"build": "tsc -b ./tsconfig.build.json",
|