@empjs/plugin-react 3.12.1 → 4.0.0-alpha.1

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/dist/index.d.ts CHANGED
@@ -1,40 +1,7 @@
1
- import { GlobalStore } from '@empjs/cli';
2
-
3
- type PluginReactType = {
4
- /**
5
- * 是否启动 热更 默认为 true
6
- */
7
- hmr?: boolean;
8
- /**
9
- * 是否启动 Svg React Component
10
- * @default ?react
11
- */
12
- svgrQuery?: string;
13
- /**
14
- * React Runtime 手动切换jsx模式
15
- * 当 external react时需要设置
16
- * 本地安装时会自动判断 不需要设置
17
- * @default undefined
18
- */
19
- reactRuntime?: string;
20
- splickChunks?: boolean;
21
- /**
22
- * react version 适配cdn 加载环境
23
- * 不安装 react 必须手动输入版本号 以便适配配置
24
- * @default 18
25
- */
26
- version?: number;
27
- import?: {
28
- src: string;
29
- externals?: {
30
- [key: string]: string;
31
- };
32
- };
33
- };
34
-
1
+ import type { GlobalStore } from '@empjs/cli';
2
+ import type { PluginReactType } from './types';
35
3
  declare const _default: (o?: PluginReactType) => {
36
4
  name: string;
37
5
  rsConfig(store: GlobalStore): Promise<void>;
38
6
  };
39
-
40
- export { _default as default };
7
+ export default _default;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var c=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var h=(e={})=>({name:"@empjs/plugin-react",async rsConfig(r){let{chain:t,deepAssign:i}=r;r.empConfig.server.hot===!1&&(e.hmr=!1),e.hmr===!1&&(r.empConfig.server.hot=!1),e=i({hmr:!0,svgrQuery:"react",splickChunks:!1},e);let n="18.0.0";e.version?n=`${e.version}`:(r.pkg.dependencies.react||r.pkg.devDependencies.react)&&(n=r.pkg.dependencies.react||r.pkg.devDependencies.react),e.import&&(r.injectTags([{attributes:{src:e.import.src},tagName:"script"}]),e.import.externals&&t.merge({externals:e.import.externals}));function m(){return n?e.reactRuntime?e.reactRuntime:r.vCompare(n,"17")>-1?"automatic":"classic":e.reactRuntime}let p={react:{runtime:m(),development:r.isDev,refresh:r.isDev&&e.hmr}},a=s=>(s.jsc.transform=i(s.jsc.transform,p),s);if(t.module.rule("javascript").use("swc").tap(a),t.module.rule("typescript").use("swc").tap(a),r.isDev&&e.hmr){let s=`${r.uniqueName}_emp_hmr_${r.empConfig.server.port||"default"}`,l={include:[/\.(?:js|jsx|mjs|cjs|ts|tsx|mts|cts)$/],exclude:[/node_modules/,/\.css$/,/__federation_expose.*\.js$/],library:s};r.chain.plugin("plugin-react-refresh").use(c.resolve("@rspack/plugin-react-refresh"),[l])}t.module.rule("svg").delete("type");let u=new RegExp(`${e.svgrQuery}`);r.chain.merge({module:{rule:{svg:{test:/\.svg$/,oneOf:[{issuer:/\.[jt]sx?$/,resourceQuery:u,use:[{loader:c.resolve("@svgr/webpack"),options:{}}]},{resourceQuery:{not:[u]},type:"asset/resource"}]}}}}),e.splickChunks&&r.chain.optimization.merge({splitChunks:{cacheGroups:{react:{name:"common-react",test:r.isDev?/node_modules[\\/](?:react|react-dom|scheduler|react-refresh|@rspack[\\/]plugin-react-refresh)[\\/]/:/node_modules[\\/](?:react|react-dom|scheduler)[\\/]/,priority:0},reactRouter:{name:"common-react-router",test:/node_modules[\\/](?:react-router|react-router-dom|history|@remix-run[\\/]router)[\\/]/,priority:0}}}})}});export{h as default};
1
+ import{createRequire as e}from"node:module";import{ReactRefreshRspackPlugin as r}from"@rspack/plugin-react-refresh";let t=e(import.meta.url);export default((e={})=>({name:"@empjs/plugin-react",async rsConfig(s){let{chain:o,deepAssign:c}=s;!1===s.empConfig.server.hot&&(e.hmr=!1),!1===e.hmr&&(s.empConfig.server.hot=!1);let a="18.0.0";(e=c({hmr:!0,svgrQuery:"react",splickChunks:!1},e)).version?a=`${e.version}`:(s.pkg.dependencies.react||s.pkg.devDependencies.react)&&(a=s.pkg.dependencies.react||s.pkg.devDependencies.react),e.import&&(s.injectTags([{attributes:{src:e.import.src},tagName:"script"}]),e.import.externals&&o.merge({externals:e.import.externals}));let i={react:{runtime:a?e.reactRuntime?e.reactRuntime:s.vCompare(a,"17")>-1?"automatic":"classic":e.reactRuntime,development:s.isDev,refresh:s.isDev&&e.hmr}},m=e=>(e.jsc.transform=c(e.jsc.transform,i),e);if(o.module.rule("javascript").use("swc").tap(m),o.module.rule("typescript").use("swc").tap(m),s.isDev&&e.hmr){let e=`${s.uniqueName}_emp_hmr_${s.empConfig.server.port||"default"}`;s.chain.plugin("plugin-react-refresh").use(r,[{include:[/\.(?:js|jsx|mjs|cjs|ts|tsx|mts|cts)$/],exclude:[/node_modules/,/\.css$/,/__federation_expose.*\.js$/],library:e,reloadOnRuntimeErrors:!0}])}o.module.rule("svg").delete("type");let n=RegExp(`${e.svgrQuery}`);s.chain.merge({module:{rule:{svg:{test:/\.svg$/,oneOf:[{issuer:/\.[jt]sx?$/,resourceQuery:n,use:[{loader:t.resolve("@svgr/webpack"),options:{}}]},{resourceQuery:{not:[n]},type:"asset/resource"}]}}}}),e.splickChunks&&s.chain.optimization.merge({splitChunks:{cacheGroups:{react:{name:"common-react",test:s.isDev?/node_modules[\\/](?:react|react-dom|scheduler|react-refresh|@rspack[\\/]plugin-react-refresh)[\\/]/:/node_modules[\\/](?:react|react-dom|scheduler)[\\/]/,priority:0},reactRouter:{name:"common-react-router",test:/node_modules[\\/](?:react-router|react-router-dom|history|@remix-run[\\/]router)[\\/]/,priority:0}}}})}}));
@@ -0,0 +1,62 @@
1
+ export type PluginReactType = {
2
+ /**
3
+ * 是否启动 热更 默认为 true
4
+ */
5
+ hmr?: boolean;
6
+ /**
7
+ * 是否启动 Svg React Component
8
+ * @default ?react
9
+ */
10
+ svgrQuery?: string;
11
+ /**
12
+ * React Runtime 手动切换jsx模式
13
+ * 当 external react时需要设置
14
+ * 本地安装时会自动判断 不需要设置
15
+ * @default undefined
16
+ */
17
+ reactRuntime?: string;
18
+ splickChunks?: boolean;
19
+ /**
20
+ * react version 适配cdn 加载环境
21
+ * 不安装 react 必须手动输入版本号 以便适配配置
22
+ * @default 18
23
+ */
24
+ version?: number;
25
+ import?: {
26
+ src: string;
27
+ externals?: {
28
+ [key: string]: string;
29
+ };
30
+ };
31
+ };
32
+ /**
33
+ * React Refresh 插件配置选项
34
+ * 参考: https://github.com/rspack-contrib/rspack-plugin-react-refresh
35
+ */
36
+ export type PluginReactConfigType = {
37
+ include?: RegExp | RegExp[];
38
+ exclude?: RegExp | RegExp[];
39
+ library?: string;
40
+ overlay?: boolean | {
41
+ entry?: string | string[];
42
+ module?: string | string[];
43
+ sockIntegration?: 'wds' | 'whm';
44
+ sockHost?: string;
45
+ sockPort?: number;
46
+ sockPath?: string;
47
+ sockProtocol?: 'http' | 'https';
48
+ };
49
+ useLegacyWDSSockets?: boolean;
50
+ forceEnable?: boolean;
51
+ /**
52
+ * Whether to inject the builtin:react-refresh-loader
53
+ * @default true
54
+ */
55
+ injectLoader?: boolean;
56
+ /**
57
+ * Whether to inject the client/reactRefreshEntry.js
58
+ * @default true
59
+ */
60
+ injectEntry?: boolean;
61
+ reloadOnRuntimeErrors?: boolean;
62
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empjs/plugin-react",
3
- "version": "3.12.1",
3
+ "version": "4.0.0-alpha.1",
4
4
  "description": "emp react plugin",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -22,35 +22,31 @@
22
22
  "keywords": [
23
23
  "react"
24
24
  ],
25
- "main": "dist/index.js",
26
- "types": "dist/index.d.ts",
25
+ "main": "./dist/index.js",
26
+ "types": "./dist/index.d.ts",
27
27
  "exports": {
28
28
  ".": {
29
- "import": {
30
- "types": "./dist/index.d.ts",
31
- "default": "./dist/index.js"
32
- },
33
- "require": {
34
- "types": "./dist/index.d.cts",
35
- "default": "./dist/index.cjs"
36
- }
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js",
31
+ "default": "./dist/index.js"
37
32
  }
38
33
  },
39
34
  "engines": {
40
- "node": ">=16.0.0"
35
+ "node": "^20.19.0 || >=22.12.0"
41
36
  },
42
37
  "author": "Ken",
43
38
  "devDependencies": {
44
- "@types/react": "^18.2.30",
45
- "@empjs/cli": "3.11.0"
39
+ "@types/react": "^19.2.10",
40
+ "@empjs/cli": "4.0.0-alpha.1"
46
41
  },
47
42
  "dependencies": {
48
- "@rspack/plugin-react-refresh": "1.5.1",
43
+ "@rspack/plugin-react-refresh": "^2.0.0",
49
44
  "@svgr/webpack": "8.1.0",
50
- "react-refresh": "0.17.0"
45
+ "react-refresh": "0.18.0"
51
46
  },
52
47
  "scripts": {
53
- "build": "tsup",
54
- "dev": "tsup --watch"
48
+ "build": "rslib build --env-mode production",
49
+ "dev": "rslib build --watch --env-mode development",
50
+ "test": "node test/react-refresh-plugin.test.mjs"
55
51
  }
56
52
  }
package/dist/index.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";var d=Object.create;var c=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,y=Object.prototype.hasOwnProperty;var R=(e,r)=>{for(var t in r)c(e,t,{get:r[t],enumerable:!0})},m=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of h(r))!y.call(e,s)&&s!==t&&c(e,s,{get:()=>r[s],enumerable:!(n=g(r,s))||n.enumerable});return e};var p=(e,r,t)=>(t=e!=null?d(v(e)):{},m(r||!e||!e.__esModule?c(t,"default",{value:e,enumerable:!0}):t,e)),j=e=>m(c({},"__esModule",{value:!0}),e);var k={};R(k,{default:()=>x});module.exports=j(k);var x=(e={})=>({name:"@empjs/plugin-react",async rsConfig(r){let{chain:t,deepAssign:n}=r;r.empConfig.server.hot===!1&&(e.hmr=!1),e.hmr===!1&&(r.empConfig.server.hot=!1),e=n({hmr:!0,svgrQuery:"react",splickChunks:!1},e);let s="18.0.0";e.version?s=`${e.version}`:(r.pkg.dependencies.react||r.pkg.devDependencies.react)&&(s=r.pkg.dependencies.react||r.pkg.devDependencies.react),e.import&&(r.injectTags([{attributes:{src:e.import.src},tagName:"script"}]),e.import.externals&&t.merge({externals:e.import.externals}));function l(){return s?e.reactRuntime?e.reactRuntime:r.vCompare(s,"17")>-1?"automatic":"classic":e.reactRuntime}let o={react:{runtime:l(),development:r.isDev,refresh:r.isDev&&e.hmr}},a=i=>(i.jsc.transform=n(i.jsc.transform,o),i);if(t.module.rule("javascript").use("swc").tap(a),t.module.rule("typescript").use("swc").tap(a),r.isDev&&e.hmr){let i=`${r.uniqueName}_emp_hmr_${r.empConfig.server.port||"default"}`,f={include:[/\.(?:js|jsx|mjs|cjs|ts|tsx|mts|cts)$/],exclude:[/node_modules/,/\.css$/,/__federation_expose.*\.js$/],library:i};r.chain.plugin("plugin-react-refresh").use(require.resolve("@rspack/plugin-react-refresh"),[f])}t.module.rule("svg").delete("type");let u=new RegExp(`${e.svgrQuery}`);r.chain.merge({module:{rule:{svg:{test:/\.svg$/,oneOf:[{issuer:/\.[jt]sx?$/,resourceQuery:u,use:[{loader:require.resolve("@svgr/webpack"),options:{}}]},{resourceQuery:{not:[u]},type:"asset/resource"}]}}}}),e.splickChunks&&r.chain.optimization.merge({splitChunks:{cacheGroups:{react:{name:"common-react",test:r.isDev?/node_modules[\\/](?:react|react-dom|scheduler|react-refresh|@rspack[\\/]plugin-react-refresh)[\\/]/:/node_modules[\\/](?:react|react-dom|scheduler)[\\/]/,priority:0},reactRouter:{name:"common-react-router",test:/node_modules[\\/](?:react-router|react-router-dom|history|@remix-run[\\/]router)[\\/]/,priority:0}}}})}});
package/dist/index.d.cts DELETED
@@ -1,40 +0,0 @@
1
- import { GlobalStore } from '@empjs/cli';
2
-
3
- type PluginReactType = {
4
- /**
5
- * 是否启动 热更 默认为 true
6
- */
7
- hmr?: boolean;
8
- /**
9
- * 是否启动 Svg React Component
10
- * @default ?react
11
- */
12
- svgrQuery?: string;
13
- /**
14
- * React Runtime 手动切换jsx模式
15
- * 当 external react时需要设置
16
- * 本地安装时会自动判断 不需要设置
17
- * @default undefined
18
- */
19
- reactRuntime?: string;
20
- splickChunks?: boolean;
21
- /**
22
- * react version 适配cdn 加载环境
23
- * 不安装 react 必须手动输入版本号 以便适配配置
24
- * @default 18
25
- */
26
- version?: number;
27
- import?: {
28
- src: string;
29
- externals?: {
30
- [key: string]: string;
31
- };
32
- };
33
- };
34
-
35
- declare const _default: (o?: PluginReactType) => {
36
- name: string;
37
- rsConfig(store: GlobalStore): Promise<void>;
38
- };
39
-
40
- export { _default as default };