@modern-js/builder 3.0.0-alpha.0 → 3.0.0-alpha.2
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/cjs/createBuilder.js +96 -0
- package/dist/cjs/index.js +59 -0
- package/dist/cjs/plugins/devtools.js +47 -0
- package/dist/cjs/plugins/emitRouteFile.js +75 -0
- package/dist/cjs/plugins/environmentDefaults.js +100 -0
- package/dist/cjs/plugins/globalVars.js +55 -0
- package/dist/cjs/plugins/htmlMinify.js +115 -0
- package/dist/cjs/plugins/manifest.js +52 -0
- package/dist/cjs/plugins/postcss.js +118 -0
- package/dist/cjs/plugins/runtimeChunk.js +54 -0
- package/dist/cjs/rsc/common.js +157 -0
- package/dist/cjs/rsc/plugins/rsbuild-rsc-plugin.js +169 -0
- package/dist/cjs/rsc/plugins/rspack-rsc-client-plugin.js +187 -0
- package/dist/cjs/rsc/plugins/rspack-rsc-server-plugin.js +245 -0
- package/dist/cjs/rsc/rsc-client-loader.js +71 -0
- package/dist/cjs/rsc/rsc-css-loader.js +42 -0
- package/dist/cjs/rsc/rsc-server-loader.js +102 -0
- package/dist/cjs/rsc/rsc-ssr-loader.js +60 -0
- package/dist/cjs/shared/devServer.js +87 -0
- package/dist/cjs/shared/getCssSupport.js +121 -0
- package/dist/cjs/shared/manifest.js +46 -0
- package/dist/cjs/shared/parseCommonConfig.js +209 -0
- package/dist/cjs/shared/rsc/rscClientBrowserFallback.js +64 -0
- package/dist/cjs/shared/rsc/rscEmptyModule.js +36 -0
- package/dist/cjs/shared/utils.js +115 -0
- package/dist/cjs/types.js +18 -0
- package/dist/compiled/postcss-load-config/index.d.ts +1 -0
- package/dist/compiled/postcss-load-config/index.js +608 -0
- package/dist/compiled/postcss-load-config/index.js.LICENSE.txt +13 -0
- package/dist/compiled/postcss-load-config/license +20 -0
- package/dist/compiled/postcss-load-config/package.json +1 -0
- package/dist/esm/createBuilder.mjs +59 -0
- package/dist/esm/index.mjs +4 -0
- package/dist/esm/plugins/devtools.mjs +13 -0
- package/dist/esm/plugins/emitRouteFile.mjs +28 -0
- package/dist/esm/plugins/environmentDefaults.mjs +66 -0
- package/dist/esm/plugins/globalVars.mjs +21 -0
- package/dist/esm/plugins/htmlMinify.mjs +81 -0
- package/dist/esm/plugins/manifest.mjs +18 -0
- package/dist/esm/plugins/postcss.mjs +81 -0
- package/dist/esm/plugins/runtimeChunk.mjs +20 -0
- package/dist/esm/rsc/common.mjs +87 -0
- package/dist/esm/rsc/plugins/rsbuild-rsc-plugin.mjs +124 -0
- package/dist/esm/rsc/plugins/rspack-rsc-client-plugin.mjs +143 -0
- package/dist/esm/rsc/plugins/rspack-rsc-server-plugin.mjs +211 -0
- package/dist/esm/rsc/rsc-client-loader.mjs +37 -0
- package/dist/esm/rsc/rsc-css-loader.mjs +8 -0
- package/dist/esm/rsc/rsc-server-loader.mjs +58 -0
- package/dist/esm/rsc/rsc-ssr-loader.mjs +26 -0
- package/dist/esm/shared/devServer.mjs +53 -0
- package/dist/esm/shared/getCssSupport.mjs +77 -0
- package/dist/esm/shared/manifest.mjs +12 -0
- package/dist/esm/shared/parseCommonConfig.mjs +172 -0
- package/dist/esm/shared/rsc/rscClientBrowserFallback.mjs +20 -0
- package/dist/esm/shared/rsc/rscEmptyModule.mjs +2 -0
- package/dist/esm/shared/utils.mjs +53 -0
- package/dist/esm/types.mjs +0 -0
- package/dist/esm-node/createBuilder.mjs +61 -0
- package/dist/esm-node/index.mjs +6 -0
- package/dist/esm-node/plugins/devtools.mjs +15 -0
- package/dist/esm-node/plugins/emitRouteFile.mjs +30 -0
- package/dist/esm-node/plugins/environmentDefaults.mjs +68 -0
- package/dist/esm-node/plugins/globalVars.mjs +23 -0
- package/dist/esm-node/plugins/htmlMinify.mjs +83 -0
- package/dist/esm-node/plugins/manifest.mjs +20 -0
- package/dist/esm-node/plugins/postcss.mjs +83 -0
- package/dist/esm-node/plugins/runtimeChunk.mjs +22 -0
- package/dist/esm-node/rsc/common.mjs +89 -0
- package/dist/esm-node/rsc/plugins/rsbuild-rsc-plugin.mjs +126 -0
- package/dist/esm-node/rsc/plugins/rspack-rsc-client-plugin.mjs +145 -0
- package/dist/esm-node/rsc/plugins/rspack-rsc-server-plugin.mjs +213 -0
- package/dist/esm-node/rsc/rsc-client-loader.mjs +39 -0
- package/dist/esm-node/rsc/rsc-css-loader.mjs +10 -0
- package/dist/esm-node/rsc/rsc-server-loader.mjs +60 -0
- package/dist/esm-node/rsc/rsc-ssr-loader.mjs +28 -0
- package/dist/esm-node/shared/devServer.mjs +55 -0
- package/dist/esm-node/shared/getCssSupport.mjs +79 -0
- package/dist/esm-node/shared/manifest.mjs +14 -0
- package/dist/esm-node/shared/parseCommonConfig.mjs +174 -0
- package/dist/esm-node/shared/rsc/rscClientBrowserFallback.mjs +25 -0
- package/dist/esm-node/shared/rsc/rscEmptyModule.mjs +4 -0
- package/dist/esm-node/shared/utils.mjs +55 -0
- package/dist/esm-node/types.mjs +2 -0
- package/dist/types/shared/rsc/rscClientBrowserFallback.d.ts +2 -0
- package/dist/types/shared/rsc/rscEmptyModule.d.ts +2 -0
- package/dist/{types.d.ts → types/types.d.ts} +2 -16
- package/package.json +36 -31
- package/dist/createBuilder.js +0 -153
- package/dist/index.js +0 -45
- package/dist/plugins/babel-post.d.ts +0 -5
- package/dist/plugins/babel-post.js +0 -57
- package/dist/plugins/devtools.js +0 -42
- package/dist/plugins/emitRouteFile.js +0 -70
- package/dist/plugins/environmentDefaults.js +0 -99
- package/dist/plugins/globalVars.js +0 -50
- package/dist/plugins/htmlMinify.js +0 -126
- package/dist/plugins/manifest.js +0 -54
- package/dist/plugins/postcss.js +0 -133
- package/dist/plugins/runtimeChunk.js +0 -55
- package/dist/rsc/common.js +0 -174
- package/dist/rsc/plugins/rsbuild-rsc-plugin.js +0 -166
- package/dist/rsc/plugins/rspack-rsc-client-plugin.js +0 -233
- package/dist/rsc/plugins/rspack-rsc-server-plugin.js +0 -290
- package/dist/rsc/rsc-client-loader.js +0 -70
- package/dist/rsc/rsc-css-loader.js +0 -30
- package/dist/rsc/rsc-server-loader.js +0 -95
- package/dist/rsc/rsc-ssr-loader.js +0 -58
- package/dist/shared/devServer.js +0 -83
- package/dist/shared/getCssSupport.js +0 -113
- package/dist/shared/manifest.js +0 -38
- package/dist/shared/parseCommonConfig.js +0 -232
- package/dist/shared/utils.js +0 -109
- package/dist/types.js +0 -16
- /package/dist/{createBuilder.d.ts → types/createBuilder.d.ts} +0 -0
- /package/dist/{index.d.ts → types/index.d.ts} +0 -0
- /package/dist/{plugins → types/plugins}/devtools.d.ts +0 -0
- /package/dist/{plugins → types/plugins}/emitRouteFile.d.ts +0 -0
- /package/dist/{plugins → types/plugins}/environmentDefaults.d.ts +0 -0
- /package/dist/{plugins → types/plugins}/globalVars.d.ts +0 -0
- /package/dist/{plugins → types/plugins}/htmlMinify.d.ts +0 -0
- /package/dist/{plugins → types/plugins}/manifest.d.ts +0 -0
- /package/dist/{plugins → types/plugins}/postcss.d.ts +0 -0
- /package/dist/{plugins → types/plugins}/runtimeChunk.d.ts +0 -0
- /package/dist/{rsc → types/rsc}/common.d.ts +0 -0
- /package/dist/{rsc → types/rsc}/plugins/rsbuild-rsc-plugin.d.ts +0 -0
- /package/dist/{rsc → types/rsc}/plugins/rspack-rsc-client-plugin.d.ts +0 -0
- /package/dist/{rsc → types/rsc}/plugins/rspack-rsc-server-plugin.d.ts +0 -0
- /package/dist/{rsc → types/rsc}/rsc-client-loader.d.ts +0 -0
- /package/dist/{rsc → types/rsc}/rsc-css-loader.d.ts +0 -0
- /package/dist/{rsc → types/rsc}/rsc-server-loader.d.ts +0 -0
- /package/dist/{rsc → types/rsc}/rsc-ssr-loader.d.ts +0 -0
- /package/dist/{shared → types/shared}/devServer.d.ts +0 -0
- /package/dist/{shared → types/shared}/getCssSupport.d.ts +0 -0
- /package/dist/{shared → types/shared}/manifest.d.ts +0 -0
- /package/dist/{shared → types/shared}/parseCommonConfig.d.ts +0 -0
- /package/dist/{shared → types/shared}/utils.d.ts +0 -0
package/dist/plugins/manifest.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var manifest_exports = {};
|
|
30
|
-
__export(manifest_exports, {
|
|
31
|
-
pluginManifest: () => pluginManifest
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(manifest_exports);
|
|
34
|
-
var import_manifest = require("../shared/manifest");
|
|
35
|
-
const pluginManifest = () => ({
|
|
36
|
-
name: "builder:manifest",
|
|
37
|
-
setup(api) {
|
|
38
|
-
api.modifyBundlerChain(async (chain, { target, CHAIN_ID }) => {
|
|
39
|
-
const { RspackManifestPlugin } = await Promise.resolve().then(() => __toESM(require("rspack-manifest-plugin")));
|
|
40
|
-
const publicPath = chain.output.get("publicPath");
|
|
41
|
-
chain.plugin(CHAIN_ID.PLUGIN.MANIFEST).use(RspackManifestPlugin, [
|
|
42
|
-
{
|
|
43
|
-
fileName: target === "web" ? "asset-manifest.json" : `asset-manifest-${target}.json`,
|
|
44
|
-
publicPath,
|
|
45
|
-
generate: import_manifest.generateManifest
|
|
46
|
-
}
|
|
47
|
-
]);
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
52
|
-
0 && (module.exports = {
|
|
53
|
-
pluginManifest
|
|
54
|
-
});
|
package/dist/plugins/postcss.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var postcss_exports = {};
|
|
30
|
-
__export(postcss_exports, {
|
|
31
|
-
pluginPostcss: () => pluginPostcss
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(postcss_exports);
|
|
34
|
-
var import_utils = require("@modern-js/utils");
|
|
35
|
-
var import_getCssSupport = require("../shared/getCssSupport");
|
|
36
|
-
const userPostcssrcCache = /* @__PURE__ */ new Map();
|
|
37
|
-
const clonePostCSSConfig = (config) => ({
|
|
38
|
-
...config,
|
|
39
|
-
plugins: config.plugins ? [
|
|
40
|
-
...config.plugins
|
|
41
|
-
] : void 0
|
|
42
|
-
});
|
|
43
|
-
async function loadUserPostcssrc(root) {
|
|
44
|
-
const cached = userPostcssrcCache.get(root);
|
|
45
|
-
if (cached) {
|
|
46
|
-
return clonePostCSSConfig(await cached);
|
|
47
|
-
}
|
|
48
|
-
const { default: postcssrc } = await Promise.resolve().then(() => __toESM(require("../../compiled/postcss-load-config")));
|
|
49
|
-
const promise = postcssrc({}, root).catch((err) => {
|
|
50
|
-
var _err_message;
|
|
51
|
-
if ((_err_message = err.message) === null || _err_message === void 0 ? void 0 : _err_message.includes("No PostCSS Config found")) {
|
|
52
|
-
return {};
|
|
53
|
-
}
|
|
54
|
-
throw err;
|
|
55
|
-
});
|
|
56
|
-
userPostcssrcCache.set(root, promise);
|
|
57
|
-
return promise.then((config) => {
|
|
58
|
-
userPostcssrcCache.set(root, config);
|
|
59
|
-
return clonePostCSSConfig(config);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
const pluginPostcss = (options = {}) => ({
|
|
63
|
-
name: "builder:postcss-plugins",
|
|
64
|
-
pre: [
|
|
65
|
-
"builder:environment-defaults-plugin"
|
|
66
|
-
],
|
|
67
|
-
setup(api) {
|
|
68
|
-
const { autoprefixer } = options;
|
|
69
|
-
api.modifyEnvironmentConfig(async (config, { mergeEnvironmentConfig }) => {
|
|
70
|
-
var _config_output;
|
|
71
|
-
if (config.output.target !== "web") {
|
|
72
|
-
return config;
|
|
73
|
-
}
|
|
74
|
-
const cssSupport = (0, import_getCssSupport.getCssSupport)(config.output.overrideBrowserslist);
|
|
75
|
-
const enableExtractCSS = !((_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.injectStyles);
|
|
76
|
-
const enableCssMinify = !enableExtractCSS && (0, import_utils.isProd)();
|
|
77
|
-
const cssnanoOptions = {
|
|
78
|
-
preset: [
|
|
79
|
-
"default",
|
|
80
|
-
{
|
|
81
|
-
// merge longhand will break safe-area-inset-top, so disable it
|
|
82
|
-
// https://github.com/cssnano/cssnano/issues/803
|
|
83
|
-
// https://github.com/cssnano/cssnano/issues/967
|
|
84
|
-
mergeLonghand: false,
|
|
85
|
-
/**
|
|
86
|
-
* normalizeUrl will transform relative url from `./assets/img.svg` to `assets/img.svg`.
|
|
87
|
-
* It may break the behavior of webpack resolver while using style-loader.
|
|
88
|
-
* So disable it while `output.injectStyles = true`
|
|
89
|
-
*/
|
|
90
|
-
normalizeUrl: false
|
|
91
|
-
}
|
|
92
|
-
]
|
|
93
|
-
};
|
|
94
|
-
const plugins = [
|
|
95
|
-
require("postcss-flexbugs-fixes"),
|
|
96
|
-
!cssSupport.customProperties && require("postcss-custom-properties"),
|
|
97
|
-
!cssSupport.initial && require("postcss-initial"),
|
|
98
|
-
!cssSupport.pageBreak && require("postcss-page-break"),
|
|
99
|
-
!cssSupport.fontVariant && require("postcss-font-variant"),
|
|
100
|
-
!cssSupport.mediaMinmax && require("postcss-media-minmax"),
|
|
101
|
-
require("postcss-nesting"),
|
|
102
|
-
enableCssMinify ? require("cssnano")(cssnanoOptions) : false,
|
|
103
|
-
// The last insert autoprefixer
|
|
104
|
-
require("autoprefixer")((0, import_utils.applyOptionsChain)({
|
|
105
|
-
flexbox: "no-2009",
|
|
106
|
-
overrideBrowserslist: config.output.overrideBrowserslist
|
|
107
|
-
}, autoprefixer))
|
|
108
|
-
].filter(Boolean);
|
|
109
|
-
const userOptions = await loadUserPostcssrc(api.context.rootPath);
|
|
110
|
-
return mergeEnvironmentConfig(
|
|
111
|
-
{
|
|
112
|
-
tools: {
|
|
113
|
-
postcss: {
|
|
114
|
-
postcssOptions: {
|
|
115
|
-
...userOptions,
|
|
116
|
-
plugins: [
|
|
117
|
-
...userOptions.plugins || [],
|
|
118
|
-
...plugins
|
|
119
|
-
]
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
// user config has higher priority than builtin config
|
|
125
|
-
config
|
|
126
|
-
);
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
131
|
-
0 && (module.exports = {
|
|
132
|
-
pluginPostcss
|
|
133
|
-
});
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var runtimeChunk_exports = {};
|
|
20
|
-
__export(runtimeChunk_exports, {
|
|
21
|
-
pluginRuntimeChunk: () => pluginRuntimeChunk
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(runtimeChunk_exports);
|
|
24
|
-
var import_utils = require("../shared/utils");
|
|
25
|
-
const pluginRuntimeChunk = (disableInlineRuntimeChunk) => ({
|
|
26
|
-
name: "builder:runtime-chunk",
|
|
27
|
-
setup(api) {
|
|
28
|
-
api.modifyBundlerChain(async (chain, { target, environment }) => {
|
|
29
|
-
if (target !== "web") {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const { config } = environment;
|
|
33
|
-
const { chunkSplit } = config.performance;
|
|
34
|
-
if (chunkSplit.strategy !== "all-in-one") {
|
|
35
|
-
chain.optimization.runtimeChunk({
|
|
36
|
-
name: import_utils.RUNTIME_CHUNK_NAME
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
api.modifyRsbuildConfig((config) => {
|
|
41
|
-
var _config;
|
|
42
|
-
(_config = config).output || (_config.output = {});
|
|
43
|
-
if (disableInlineRuntimeChunk) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
if (!config.output.inlineScripts) {
|
|
47
|
-
config.output.inlineScripts = import_utils.RUNTIME_CHUNK_REGEX;
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
-
0 && (module.exports = {
|
|
54
|
-
pluginRuntimeChunk
|
|
55
|
-
});
|
package/dist/rsc/common.js
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var common_exports = {};
|
|
20
|
-
__export(common_exports, {
|
|
21
|
-
MODERN_RSC_INFO: () => MODERN_RSC_INFO,
|
|
22
|
-
findRootIssuer: () => findRootIssuer,
|
|
23
|
-
getExportNames: () => getExportNames,
|
|
24
|
-
getRscBuildInfo: () => getRscBuildInfo,
|
|
25
|
-
isClientModule: () => isClientModule,
|
|
26
|
-
isCssModule: () => isCssModule,
|
|
27
|
-
isServerModule: () => isServerModule,
|
|
28
|
-
parseSource: () => parseSource,
|
|
29
|
-
removeRscBuildInfo: () => removeRscBuildInfo,
|
|
30
|
-
rspackRscLayerName: () => rspackRscLayerName,
|
|
31
|
-
setBuildInfo: () => setBuildInfo,
|
|
32
|
-
setRscBuildInfo: () => setRscBuildInfo,
|
|
33
|
-
sharedData: () => sharedData
|
|
34
|
-
});
|
|
35
|
-
module.exports = __toCommonJS(common_exports);
|
|
36
|
-
var import_utils = require("@modern-js/utils");
|
|
37
|
-
var import_core = require("@swc/core");
|
|
38
|
-
const rspackRscLayerName = `react-server`;
|
|
39
|
-
const MODERN_RSC_INFO = "modernRscInfo";
|
|
40
|
-
const sharedData = {
|
|
41
|
-
store: /* @__PURE__ */ new Map(),
|
|
42
|
-
get(key) {
|
|
43
|
-
return this.store.get(key);
|
|
44
|
-
},
|
|
45
|
-
set(key, value) {
|
|
46
|
-
this.store.set(key, value);
|
|
47
|
-
},
|
|
48
|
-
clear() {
|
|
49
|
-
this.store.clear();
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
function setBuildInfo(mod, property) {
|
|
53
|
-
if (!mod.buildInfo) {
|
|
54
|
-
mod.buildInfo = {};
|
|
55
|
-
}
|
|
56
|
-
Object.assign(mod.buildInfo, property);
|
|
57
|
-
}
|
|
58
|
-
function setRscBuildInfo(mod, property) {
|
|
59
|
-
if (!mod.buildInfo) {
|
|
60
|
-
mod.buildInfo = {};
|
|
61
|
-
}
|
|
62
|
-
const rscBuildInfo = mod.buildInfo[MODERN_RSC_INFO] || {};
|
|
63
|
-
Object.assign(rscBuildInfo, property);
|
|
64
|
-
setBuildInfo(mod, {
|
|
65
|
-
[MODERN_RSC_INFO]: rscBuildInfo
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
function removeRscBuildInfo(mod) {
|
|
69
|
-
var _mod_buildInfo;
|
|
70
|
-
(_mod_buildInfo = mod.buildInfo) === null || _mod_buildInfo === void 0 ? true : delete _mod_buildInfo[MODERN_RSC_INFO];
|
|
71
|
-
}
|
|
72
|
-
function getRscBuildInfo(mod) {
|
|
73
|
-
var _mod_buildInfo;
|
|
74
|
-
return (_mod_buildInfo = mod.buildInfo) === null || _mod_buildInfo === void 0 ? void 0 : _mod_buildInfo[MODERN_RSC_INFO];
|
|
75
|
-
}
|
|
76
|
-
function isCssModule(mod) {
|
|
77
|
-
var _getRscBuildInfo;
|
|
78
|
-
if (!mod)
|
|
79
|
-
return false;
|
|
80
|
-
return (_getRscBuildInfo = getRscBuildInfo(mod)) === null || _getRscBuildInfo === void 0 ? void 0 : _getRscBuildInfo.isCssModule;
|
|
81
|
-
}
|
|
82
|
-
const parseSource = async (source) => {
|
|
83
|
-
return await (0, import_core.parse)(source, {
|
|
84
|
-
syntax: "typescript",
|
|
85
|
-
tsx: true,
|
|
86
|
-
dynamicImport: true
|
|
87
|
-
});
|
|
88
|
-
};
|
|
89
|
-
const getExportNames = async (ast, collectFuncOnly = false) => {
|
|
90
|
-
const exportNames = [];
|
|
91
|
-
ast.body.forEach((node) => {
|
|
92
|
-
if (node.type === "ExportNamedDeclaration") {
|
|
93
|
-
const namedExport = node;
|
|
94
|
-
namedExport.specifiers.forEach((specifier) => {
|
|
95
|
-
if (specifier.type === "ExportSpecifier") {
|
|
96
|
-
var _specifier_exported;
|
|
97
|
-
exportNames.push(((_specifier_exported = specifier.exported) === null || _specifier_exported === void 0 ? void 0 : _specifier_exported.value) || specifier.orig.value);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
if (node.type === "ExportDeclaration") {
|
|
102
|
-
if (node.declaration.type === "VariableDeclaration") {
|
|
103
|
-
node.declaration.declarations.forEach((decl) => {
|
|
104
|
-
if (decl.id.type === "Identifier") {
|
|
105
|
-
if (!collectFuncOnly) {
|
|
106
|
-
exportNames.push(decl.id.value);
|
|
107
|
-
} else {
|
|
108
|
-
var _decl_init, _decl_init1;
|
|
109
|
-
if (((_decl_init = decl.init) === null || _decl_init === void 0 ? void 0 : _decl_init.type) === "FunctionExpression" || ((_decl_init1 = decl.init) === null || _decl_init1 === void 0 ? void 0 : _decl_init1.type) === "ArrowFunctionExpression") {
|
|
110
|
-
exportNames.push(decl.id.value);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
if (node.declaration.type === "ClassDeclaration" || node.declaration.type === "FunctionDeclaration") {
|
|
117
|
-
if (node.declaration.identifier) {
|
|
118
|
-
exportNames.push(node.declaration.identifier.value);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
if (node.type === "ExportDefaultExpression" || node.type === "ExportDefaultDeclaration") {
|
|
123
|
-
exportNames.push("default");
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
return exportNames;
|
|
127
|
-
};
|
|
128
|
-
const checkDirective = async (ast, directive) => {
|
|
129
|
-
try {
|
|
130
|
-
for (let i = 0; i < ast.body.length; i++) {
|
|
131
|
-
const node = ast.body[i];
|
|
132
|
-
if (node.type !== "ExpressionStatement") {
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
if (node.expression.type === "StringLiteral" && node.expression.value === directive) {
|
|
136
|
-
return true;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
} catch (e) {
|
|
140
|
-
import_utils.logger.error(e);
|
|
141
|
-
return false;
|
|
142
|
-
}
|
|
143
|
-
return false;
|
|
144
|
-
};
|
|
145
|
-
const isServerModule = async (ast) => {
|
|
146
|
-
return checkDirective(ast, "use server");
|
|
147
|
-
};
|
|
148
|
-
const isClientModule = async (ast) => {
|
|
149
|
-
return checkDirective(ast, "use client");
|
|
150
|
-
};
|
|
151
|
-
function findRootIssuer(modulegraph, module2) {
|
|
152
|
-
const currentModule = module2;
|
|
153
|
-
const issuer = modulegraph.getIssuer(currentModule);
|
|
154
|
-
if (!issuer) {
|
|
155
|
-
return currentModule;
|
|
156
|
-
}
|
|
157
|
-
return findRootIssuer(modulegraph, issuer);
|
|
158
|
-
}
|
|
159
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
160
|
-
0 && (module.exports = {
|
|
161
|
-
MODERN_RSC_INFO,
|
|
162
|
-
findRootIssuer,
|
|
163
|
-
getExportNames,
|
|
164
|
-
getRscBuildInfo,
|
|
165
|
-
isClientModule,
|
|
166
|
-
isCssModule,
|
|
167
|
-
isServerModule,
|
|
168
|
-
parseSource,
|
|
169
|
-
removeRscBuildInfo,
|
|
170
|
-
rspackRscLayerName,
|
|
171
|
-
setBuildInfo,
|
|
172
|
-
setRscBuildInfo,
|
|
173
|
-
sharedData
|
|
174
|
-
});
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var rsbuild_rsc_plugin_exports = {};
|
|
30
|
-
__export(rsbuild_rsc_plugin_exports, {
|
|
31
|
-
rsbuildRscPlugin: () => rsbuildRscPlugin
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(rsbuild_rsc_plugin_exports);
|
|
34
|
-
var import_node_path = __toESM(require("node:path"));
|
|
35
|
-
var import_fs_extra = __toESM(require("@modern-js/utils/fs-extra"));
|
|
36
|
-
var import_core = require("@rsbuild/core");
|
|
37
|
-
var import_common = require("../common");
|
|
38
|
-
var import_rspack_rsc_client_plugin = require("./rspack-rsc-client-plugin");
|
|
39
|
-
var import_rspack_rsc_server_plugin = require("./rspack-rsc-server-plugin");
|
|
40
|
-
const CSS_RULE_NAMES = [
|
|
41
|
-
"less",
|
|
42
|
-
"css",
|
|
43
|
-
"scss",
|
|
44
|
-
"sass"
|
|
45
|
-
];
|
|
46
|
-
const checkReactVersionAtLeast19 = async (appDir) => {
|
|
47
|
-
const packageJsonPath = import_node_path.default.resolve(appDir, "package.json");
|
|
48
|
-
const packageJson = await import_fs_extra.default.readJSON(packageJsonPath);
|
|
49
|
-
if (!packageJson.dependencies) {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
const { dependencies } = packageJson;
|
|
53
|
-
const reactVersion = dependencies.react;
|
|
54
|
-
const reactDomVersion = dependencies["react-dom"];
|
|
55
|
-
if (!reactVersion || !reactDomVersion) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
const cleanVersion = (version) => version.replace(/[\^~]/g, "");
|
|
59
|
-
const reactVersionParts = cleanVersion(reactVersion).split(".");
|
|
60
|
-
const reactDomVersionParts = cleanVersion(reactDomVersion).split(".");
|
|
61
|
-
const reactMajor = parseInt(reactVersionParts[0], 10);
|
|
62
|
-
const reactDomMajor = parseInt(reactDomVersionParts[0], 10);
|
|
63
|
-
if (Number.isNaN(reactMajor) || Number.isNaN(reactDomMajor)) {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
return reactMajor >= 19 && reactDomMajor >= 19;
|
|
67
|
-
};
|
|
68
|
-
const rsbuildRscPlugin = ({ appDir, rscClientRuntimePath, rscServerRuntimePath, internalDirectory }) => ({
|
|
69
|
-
name: "builder:rsc-rsbuild-plugin",
|
|
70
|
-
setup(api) {
|
|
71
|
-
api.modifyBundlerChain({
|
|
72
|
-
handler: async (chain, { isServer, CHAIN_ID }) => {
|
|
73
|
-
if (!await checkReactVersionAtLeast19(appDir)) {
|
|
74
|
-
import_core.logger.error("Enable react server component, please make sure the react and react-dom versions are greater than or equal to 19.0.0");
|
|
75
|
-
process.exit(1);
|
|
76
|
-
}
|
|
77
|
-
const entryPath2Name = /* @__PURE__ */ new Map();
|
|
78
|
-
for (const [name, entry] of Object.entries(chain.entryPoints.entries())) {
|
|
79
|
-
entry.values().forEach((value) => {
|
|
80
|
-
entryPath2Name.set(value, name);
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
const jsHandler = () => {
|
|
84
|
-
const originalJsRule = chain.module.rules.get(CHAIN_ID.RULE.JS);
|
|
85
|
-
const useBabel = originalJsRule.uses.has(CHAIN_ID.USE.BABEL);
|
|
86
|
-
const JSRule = useBabel ? CHAIN_ID.USE.BABEL : CHAIN_ID.USE.SWC;
|
|
87
|
-
if (originalJsRule) {
|
|
88
|
-
const jsLoaderOptions = originalJsRule.use(JSRule).get("options");
|
|
89
|
-
const jsLoaderPath = originalJsRule.use(JSRule).get("loader");
|
|
90
|
-
originalJsRule.uses.delete(JSRule);
|
|
91
|
-
chain.module.rule(CHAIN_ID.RULE.JS).oneOf("rsc-server").issuerLayer(import_common.rspackRscLayerName).exclude.add(/universal[/\\]async_storage/).end().use("rsc-server-loader").loader(require.resolve("../rsc-server-loader")).options({
|
|
92
|
-
entryPath2Name,
|
|
93
|
-
appDir,
|
|
94
|
-
runtimePath: rscServerRuntimePath,
|
|
95
|
-
internalDirectory
|
|
96
|
-
}).end().use(JSRule).loader(jsLoaderPath).options(jsLoaderOptions).end().end().oneOf("rsc-ssr").exclude.add(/universal[/\\]async_storage/).end().use("rsc-ssr-loader").loader(require.resolve("../rsc-ssr-loader")).options({
|
|
97
|
-
entryPath2Name,
|
|
98
|
-
internalDirectory
|
|
99
|
-
}).end().use(JSRule).loader(jsLoaderPath).options(jsLoaderOptions).end().end();
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
const layerHandler = () => {
|
|
103
|
-
chain.experiments({
|
|
104
|
-
...chain.get("experiments"),
|
|
105
|
-
layers: true
|
|
106
|
-
});
|
|
107
|
-
const routesFileReg = new RegExp(`${internalDirectory.replace(/[/\\]/g, "[/\\\\]")}[/\\\\][^/\\\\]*[/\\\\]routes`);
|
|
108
|
-
chain.module.rule("server-module").resource([
|
|
109
|
-
/render[/\\].*[/\\]server[/\\]rsc/,
|
|
110
|
-
/AppProxy/,
|
|
111
|
-
routesFileReg
|
|
112
|
-
]).layer(import_common.rspackRscLayerName).end();
|
|
113
|
-
chain.module.rule(import_common.rspackRscLayerName).issuerLayer(import_common.rspackRscLayerName).resolve.conditionNames.add(import_common.rspackRscLayerName).add("...");
|
|
114
|
-
chain.module.rule("rsc-common").resource([
|
|
115
|
-
/universal[/\\]async_storage/
|
|
116
|
-
]).layer("rsc-common");
|
|
117
|
-
};
|
|
118
|
-
const flightCssHandler = () => {
|
|
119
|
-
CSS_RULE_NAMES.forEach((ruleName) => {
|
|
120
|
-
const rule = chain.module.rules.get(ruleName);
|
|
121
|
-
if (rule) {
|
|
122
|
-
chain.module.rule(ruleName).use("custom-loader").before("ignore-css").loader(require.resolve("../rsc-css-loader"));
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
const addServerRscPlugin = () => {
|
|
127
|
-
const ServerPlugin = import_rspack_rsc_server_plugin.RscServerPlugin;
|
|
128
|
-
chain.plugin("rsc-server-plugin").use(ServerPlugin, [
|
|
129
|
-
{
|
|
130
|
-
entryPath2Name
|
|
131
|
-
}
|
|
132
|
-
]);
|
|
133
|
-
};
|
|
134
|
-
const addRscClientLoader = () => {
|
|
135
|
-
chain.module.rule("js").use("rsc-client-loader").loader(require.resolve("../rsc-client-loader")).before("babel").options({
|
|
136
|
-
callServerImport: rscClientRuntimePath,
|
|
137
|
-
registerImport: rscClientRuntimePath
|
|
138
|
-
}).end();
|
|
139
|
-
};
|
|
140
|
-
const addRscClientPlugin = () => {
|
|
141
|
-
const ClientPlugin = import_rspack_rsc_client_plugin.RspackRscClientPlugin;
|
|
142
|
-
chain.plugin("rsc-client-plugin").use(ClientPlugin);
|
|
143
|
-
};
|
|
144
|
-
if (isServer) {
|
|
145
|
-
chain.name("server");
|
|
146
|
-
layerHandler();
|
|
147
|
-
flightCssHandler();
|
|
148
|
-
jsHandler();
|
|
149
|
-
addServerRscPlugin();
|
|
150
|
-
} else {
|
|
151
|
-
chain.name("client");
|
|
152
|
-
chain.dependencies([
|
|
153
|
-
"server"
|
|
154
|
-
]);
|
|
155
|
-
addRscClientLoader();
|
|
156
|
-
addRscClientPlugin();
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
order: "post"
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
164
|
-
0 && (module.exports = {
|
|
165
|
-
rsbuildRscPlugin
|
|
166
|
-
});
|