@rsbuild/core 0.7.0-beta.3 → 0.7.0-beta.4

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.
Files changed (181) hide show
  1. package/bin/rsbuild.js +4 -3
  2. package/compiled/css-loader/index.js +20 -20
  3. package/compiled/less-loader/index.js +8 -8
  4. package/compiled/postcss-loader/index.js +11 -11
  5. package/compiled/rspack-manifest-plugin/index.js +4 -4
  6. package/dist/client/{hmr.mjs → hmr.js} +2 -3
  7. package/dist/client/{overlay.mjs → overlay.js} +2 -6
  8. package/dist/{rspack/ignoreCssLoader.js → ignoreCssLoader.cjs} +2 -0
  9. package/dist/index.cjs +7201 -0
  10. package/dist/index.js +7435 -40
  11. package/dist/{rspack/transformLoader.js → transformLoader.cjs} +2 -0
  12. package/dist/{rspack/transformRawLoader.js → transformRawLoader.cjs} +37 -13
  13. package/{dist → dist-types}/constants.d.ts +3 -0
  14. package/dist-types/helpers.d.ts +32 -0
  15. package/{dist → dist-types}/index.d.ts +6 -0
  16. package/{dist → dist-types}/internal.d.ts +5 -2
  17. package/dist-types/package.json +1 -0
  18. package/{dist → dist-types}/plugins/html.d.ts +2 -1
  19. package/{dist → dist-types}/plugins/index.d.ts +1 -0
  20. package/dist-types/plugins/minimize.d.ts +12 -0
  21. package/{dist/provider → dist-types}/plugins/progress.d.ts +1 -1
  22. package/{dist/provider → dist-types}/plugins/resolve.d.ts +1 -1
  23. package/{dist/provider → dist-types}/plugins/rspackProfile.d.ts +1 -1
  24. package/{dist/provider → dist-types}/plugins/swc.d.ts +1 -1
  25. package/dist-types/server/devMiddleware.d.ts +18 -0
  26. package/{dist → dist-types}/server/helper.d.ts +11 -0
  27. package/package.json +14 -16
  28. package/dist/cli/commands.js +0 -110
  29. package/dist/cli/init.js +0 -101
  30. package/dist/cli/prepare.js +0 -43
  31. package/dist/client/format.js +0 -72
  32. package/dist/config.js +0 -306
  33. package/dist/constants.js +0 -40
  34. package/dist/createContext.js +0 -116
  35. package/dist/createRsbuild.js +0 -103
  36. package/dist/initHooks.js +0 -82
  37. package/dist/initPlugins.js +0 -152
  38. package/dist/internal.js +0 -79
  39. package/dist/loadEnv.js +0 -93
  40. package/dist/mergeConfig.js +0 -80
  41. package/dist/pluginHelper.js +0 -66
  42. package/dist/pluginManager.js +0 -180
  43. package/dist/plugins/asset.js +0 -101
  44. package/dist/plugins/basic.js +0 -77
  45. package/dist/plugins/bundleAnalyzer.js +0 -69
  46. package/dist/plugins/cache.js +0 -116
  47. package/dist/plugins/cleanOutput.js +0 -68
  48. package/dist/plugins/css.js +0 -257
  49. package/dist/plugins/define.js +0 -45
  50. package/dist/plugins/entry.js +0 -76
  51. package/dist/plugins/externals.js +0 -48
  52. package/dist/plugins/fileSize.js +0 -199
  53. package/dist/plugins/html.js +0 -327
  54. package/dist/plugins/index.js +0 -66
  55. package/dist/plugins/inlineChunk.js +0 -69
  56. package/dist/plugins/less.js +0 -107
  57. package/dist/plugins/manifest.js +0 -142
  58. package/dist/plugins/moduleFederation.js +0 -125
  59. package/dist/plugins/moment.js +0 -43
  60. package/dist/plugins/nodeAddons.js +0 -74
  61. package/dist/plugins/output.js +0 -63
  62. package/dist/plugins/performance.js +0 -56
  63. package/dist/plugins/resourceHints.js +0 -86
  64. package/dist/plugins/rsdoctor.js +0 -81
  65. package/dist/plugins/sass.js +0 -154
  66. package/dist/plugins/server.js +0 -59
  67. package/dist/plugins/splitChunks.js +0 -236
  68. package/dist/plugins/startUrl.js +0 -146
  69. package/dist/plugins/target.js +0 -54
  70. package/dist/plugins/wasm.js +0 -51
  71. package/dist/provider/build.js +0 -84
  72. package/dist/provider/createCompiler.js +0 -143
  73. package/dist/provider/initConfigs.js +0 -92
  74. package/dist/provider/inspectConfig.js +0 -85
  75. package/dist/provider/plugins/minimize.d.ts +0 -2
  76. package/dist/provider/plugins/minimize.js +0 -49
  77. package/dist/provider/plugins/progress.js +0 -49
  78. package/dist/provider/plugins/resolve.js +0 -42
  79. package/dist/provider/plugins/rspackProfile.js +0 -112
  80. package/dist/provider/plugins/swc.js +0 -152
  81. package/dist/provider/plugins/transition.d.ts +0 -5
  82. package/dist/provider/plugins/transition.js +0 -35
  83. package/dist/provider/provider.js +0 -158
  84. package/dist/provider/rspackConfig.js +0 -144
  85. package/dist/provider/shared.d.ts +0 -16
  86. package/dist/provider/shared.js +0 -215
  87. package/dist/rspack/HtmlAppIconPlugin.js +0 -98
  88. package/dist/rspack/HtmlBasicPlugin.js +0 -229
  89. package/dist/rspack/InlineChunkHtmlPlugin.js +0 -196
  90. package/dist/rspack/preload/HtmlPreloadOrPrefetchPlugin.js +0 -173
  91. package/dist/rspack/preload/helpers/determineAsValue.js +0 -83
  92. package/dist/rspack/preload/helpers/doesChunkBelongToHtml.js +0 -77
  93. package/dist/rspack/preload/helpers/extractChunks.js +0 -83
  94. package/dist/rspack/preload/helpers/index.js +0 -28
  95. package/dist/rspack/preload/helpers/type.js +0 -16
  96. package/dist/server/compilerDevMiddleware.js +0 -129
  97. package/dist/server/devMiddleware.d.ts +0 -3
  98. package/dist/server/devMiddleware.js +0 -74
  99. package/dist/server/devServer.js +0 -195
  100. package/dist/server/getDevMiddlewares.js +0 -177
  101. package/dist/server/helper.js +0 -237
  102. package/dist/server/httpServer.js +0 -45
  103. package/dist/server/index.js +0 -31
  104. package/dist/server/middlewares.js +0 -162
  105. package/dist/server/prodServer.js +0 -196
  106. package/dist/server/proxy.js +0 -93
  107. package/dist/server/restart.js +0 -66
  108. package/dist/server/socketServer.js +0 -178
  109. package/dist/server/watchFiles.js +0 -90
  110. package/dist/types.js +0 -16
  111. /package/{dist → dist-types}/cli/commands.d.ts +0 -0
  112. /package/{dist → dist-types}/cli/init.d.ts +0 -0
  113. /package/{dist → dist-types}/cli/prepare.d.ts +0 -0
  114. /package/{dist → dist-types}/client/format.d.ts +0 -0
  115. /package/{dist → dist-types}/client/hmr.d.ts +0 -0
  116. /package/{dist → dist-types}/client/overlay.d.ts +0 -0
  117. /package/{dist → dist-types}/config.d.ts +0 -0
  118. /package/{dist → dist-types}/createContext.d.ts +0 -0
  119. /package/{dist → dist-types}/createRsbuild.d.ts +0 -0
  120. /package/{dist → dist-types}/initHooks.d.ts +0 -0
  121. /package/{dist → dist-types}/initPlugins.d.ts +0 -0
  122. /package/{dist → dist-types}/loadEnv.d.ts +0 -0
  123. /package/{dist/rspack → dist-types/loader}/ignoreCssLoader.d.ts +0 -0
  124. /package/{dist/rspack → dist-types/loader}/transformLoader.d.ts +0 -0
  125. /package/{dist/rspack → dist-types/loader}/transformRawLoader.d.ts +0 -0
  126. /package/{dist → dist-types}/mergeConfig.d.ts +0 -0
  127. /package/{dist → dist-types}/pluginHelper.d.ts +0 -0
  128. /package/{dist → dist-types}/pluginManager.d.ts +0 -0
  129. /package/{dist → dist-types}/plugins/asset.d.ts +0 -0
  130. /package/{dist → dist-types}/plugins/basic.d.ts +0 -0
  131. /package/{dist → dist-types}/plugins/bundleAnalyzer.d.ts +0 -0
  132. /package/{dist → dist-types}/plugins/cache.d.ts +0 -0
  133. /package/{dist → dist-types}/plugins/cleanOutput.d.ts +0 -0
  134. /package/{dist → dist-types}/plugins/css.d.ts +0 -0
  135. /package/{dist → dist-types}/plugins/define.d.ts +0 -0
  136. /package/{dist → dist-types}/plugins/entry.d.ts +0 -0
  137. /package/{dist → dist-types}/plugins/externals.d.ts +0 -0
  138. /package/{dist → dist-types}/plugins/fileSize.d.ts +0 -0
  139. /package/{dist → dist-types}/plugins/inlineChunk.d.ts +0 -0
  140. /package/{dist → dist-types}/plugins/less.d.ts +0 -0
  141. /package/{dist → dist-types}/plugins/manifest.d.ts +0 -0
  142. /package/{dist → dist-types}/plugins/moduleFederation.d.ts +0 -0
  143. /package/{dist → dist-types}/plugins/moment.d.ts +0 -0
  144. /package/{dist → dist-types}/plugins/nodeAddons.d.ts +0 -0
  145. /package/{dist → dist-types}/plugins/output.d.ts +0 -0
  146. /package/{dist → dist-types}/plugins/performance.d.ts +0 -0
  147. /package/{dist → dist-types}/plugins/resourceHints.d.ts +0 -0
  148. /package/{dist → dist-types}/plugins/rsdoctor.d.ts +0 -0
  149. /package/{dist → dist-types}/plugins/sass.d.ts +0 -0
  150. /package/{dist → dist-types}/plugins/server.d.ts +0 -0
  151. /package/{dist → dist-types}/plugins/splitChunks.d.ts +0 -0
  152. /package/{dist → dist-types}/plugins/startUrl.d.ts +0 -0
  153. /package/{dist → dist-types}/plugins/target.d.ts +0 -0
  154. /package/{dist → dist-types}/plugins/wasm.d.ts +0 -0
  155. /package/{dist → dist-types}/provider/build.d.ts +0 -0
  156. /package/{dist → dist-types}/provider/createCompiler.d.ts +0 -0
  157. /package/{dist → dist-types}/provider/initConfigs.d.ts +0 -0
  158. /package/{dist → dist-types}/provider/inspectConfig.d.ts +0 -0
  159. /package/{dist → dist-types}/provider/provider.d.ts +0 -0
  160. /package/{dist → dist-types}/provider/rspackConfig.d.ts +0 -0
  161. /package/{dist → dist-types}/rspack/HtmlAppIconPlugin.d.ts +0 -0
  162. /package/{dist → dist-types}/rspack/HtmlBasicPlugin.d.ts +0 -0
  163. /package/{dist → dist-types}/rspack/InlineChunkHtmlPlugin.d.ts +0 -0
  164. /package/{dist → dist-types}/rspack/preload/HtmlPreloadOrPrefetchPlugin.d.ts +0 -0
  165. /package/{dist → dist-types}/rspack/preload/helpers/determineAsValue.d.ts +0 -0
  166. /package/{dist → dist-types}/rspack/preload/helpers/doesChunkBelongToHtml.d.ts +0 -0
  167. /package/{dist → dist-types}/rspack/preload/helpers/extractChunks.d.ts +0 -0
  168. /package/{dist → dist-types}/rspack/preload/helpers/index.d.ts +0 -0
  169. /package/{dist → dist-types}/rspack/preload/helpers/type.d.ts +0 -0
  170. /package/{dist → dist-types}/server/compilerDevMiddleware.d.ts +0 -0
  171. /package/{dist → dist-types}/server/devServer.d.ts +0 -0
  172. /package/{dist → dist-types}/server/getDevMiddlewares.d.ts +0 -0
  173. /package/{dist → dist-types}/server/httpServer.d.ts +0 -0
  174. /package/{dist → dist-types}/server/index.d.ts +0 -0
  175. /package/{dist → dist-types}/server/middlewares.d.ts +0 -0
  176. /package/{dist → dist-types}/server/prodServer.d.ts +0 -0
  177. /package/{dist → dist-types}/server/proxy.d.ts +0 -0
  178. /package/{dist → dist-types}/server/restart.d.ts +0 -0
  179. /package/{dist → dist-types}/server/socketServer.d.ts +0 -0
  180. /package/{dist → dist-types}/server/watchFiles.d.ts +0 -0
  181. /package/{dist → dist-types}/types.d.ts +0 -0
@@ -1,237 +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 helper_exports = {};
30
- __export(helper_exports, {
31
- HMR_SOCK_PATH: () => HMR_SOCK_PATH,
32
- formatRoutes: () => formatRoutes,
33
- getDevOptions: () => getDevOptions,
34
- getPort: () => getPort,
35
- getServerOptions: () => getServerOptions,
36
- mergeDevOptions: () => mergeDevOptions,
37
- printServerURLs: () => printServerURLs
38
- });
39
- module.exports = __toCommonJS(helper_exports);
40
- var import_node_net = __toESM(require("node:net"));
41
- var import_shared = require("@rsbuild/shared");
42
- const formatPrefix = (prefix) => {
43
- if (!prefix) {
44
- return "/";
45
- }
46
- const hasLeadingSlash = prefix.startsWith("/");
47
- const hasTailSlash = prefix.endsWith("/");
48
- return `${hasLeadingSlash ? "" : "/"}${prefix}${hasTailSlash ? "" : "/"}`;
49
- };
50
- const formatRoutes = (entry, prefix, outputStructure) => {
51
- const formattedPrefix = formatPrefix(prefix);
52
- return Object.keys(entry).map((entryName) => {
53
- const isIndex = entryName === "index" && outputStructure !== "nested";
54
- const displayName = isIndex ? "" : entryName;
55
- return {
56
- entryName,
57
- pathname: formattedPrefix + displayName
58
- };
59
- }).sort((a) => a.entryName === "index" ? -1 : 1);
60
- };
61
- function getURLMessages(urls, routes) {
62
- if (routes.length === 1) {
63
- return urls.map(
64
- ({ label, url }) => ` ${`> ${label.padEnd(10)}`}${import_shared.color.cyan(
65
- (0, import_shared.normalizeUrl)(`${url}${routes[0].pathname}`)
66
- )}
67
- `
68
- ).join("");
69
- }
70
- let message = "";
71
- const maxNameLength = Math.max(...routes.map((r) => r.entryName.length));
72
- urls.forEach(({ label, url }, index) => {
73
- if (index > 0) {
74
- message += "\n";
75
- }
76
- message += ` ${`> ${label}`}
77
- `;
78
- for (const r of routes) {
79
- message += ` ${import_shared.color.dim("-")} ${import_shared.color.dim(
80
- r.entryName.padEnd(maxNameLength + 4)
81
- )}${import_shared.color.cyan((0, import_shared.normalizeUrl)(`${url}${r.pathname}`))}
82
- `;
83
- }
84
- });
85
- return message;
86
- }
87
- function printServerURLs({
88
- urls: originalUrls,
89
- port,
90
- routes,
91
- protocol,
92
- printUrls
93
- }) {
94
- if (printUrls === false) {
95
- return;
96
- }
97
- let urls = originalUrls;
98
- if ((0, import_shared.isFunction)(printUrls)) {
99
- const newUrls = printUrls({
100
- urls: urls.map((item) => item.url),
101
- port,
102
- routes,
103
- protocol
104
- });
105
- if (!newUrls) {
106
- return;
107
- }
108
- if (!Array.isArray(newUrls)) {
109
- throw new Error(
110
- `"server.printUrls" must return an array, but got ${typeof newUrls}.`
111
- );
112
- }
113
- urls = newUrls.map((url) => ({
114
- url,
115
- label: (0, import_shared.getUrlLabel)(url)
116
- }));
117
- }
118
- if (urls.length === 0) {
119
- return;
120
- }
121
- const message = getURLMessages(urls, routes);
122
- import_shared.logger.log(message);
123
- return message;
124
- }
125
- const HMR_SOCK_PATH = "/rsbuild-hmr";
126
- const mergeDevOptions = ({
127
- rsbuildConfig,
128
- port
129
- }) => {
130
- const defaultDevConfig = {
131
- client: {
132
- path: HMR_SOCK_PATH,
133
- port: port.toString(),
134
- // By default it is set to "location.hostname"
135
- host: "",
136
- // By default it is set to "location.protocol === 'https:' ? 'wss' : 'ws'""
137
- protocol: void 0
138
- },
139
- writeToDisk: false,
140
- liveReload: true
141
- };
142
- const devConfig = rsbuildConfig.dev ? (0, import_shared.deepmerge)(defaultDevConfig, rsbuildConfig.dev) : defaultDevConfig;
143
- return devConfig;
144
- };
145
- const getPort = async ({
146
- host,
147
- port,
148
- strictPort,
149
- tryLimits = 20,
150
- silent = false
151
- }) => {
152
- if (typeof port === "string") {
153
- port = Number.parseInt(port, 10);
154
- }
155
- if (strictPort) {
156
- tryLimits = 1;
157
- }
158
- const original = port;
159
- let found = false;
160
- let attempts = 0;
161
- while (!found && attempts <= tryLimits) {
162
- try {
163
- await new Promise((resolve, reject) => {
164
- const server = import_node_net.default.createServer();
165
- server.unref();
166
- server.on("error", reject);
167
- server.listen({ port, host }, () => {
168
- found = true;
169
- server.close(resolve);
170
- });
171
- });
172
- } catch (e) {
173
- if (e.code !== "EADDRINUSE") {
174
- throw e;
175
- }
176
- port++;
177
- attempts++;
178
- }
179
- }
180
- if (port !== original) {
181
- if (strictPort) {
182
- throw new Error(
183
- `Port "${original}" is occupied, please choose another one.`
184
- );
185
- }
186
- if (!silent) {
187
- import_shared.logger.info(
188
- `Port ${original} is in use, ${import_shared.color.yellow(`using port ${port}.`)}
189
- `
190
- );
191
- }
192
- }
193
- return port;
194
- };
195
- const getServerOptions = async ({
196
- rsbuildConfig,
197
- getPortSilently
198
- }) => {
199
- const host = rsbuildConfig.server?.host || import_shared.DEFAULT_DEV_HOST;
200
- const port = await getPort({
201
- host,
202
- port: rsbuildConfig.server?.port || import_shared.DEFAULT_PORT,
203
- strictPort: rsbuildConfig.server?.strictPort || false,
204
- silent: getPortSilently
205
- });
206
- const https = Boolean(rsbuildConfig.server?.https) || false;
207
- return { port, host, https, serverConfig: rsbuildConfig.server || {} };
208
- };
209
- const getDevOptions = async ({
210
- rsbuildConfig,
211
- getPortSilently
212
- }) => {
213
- const { port, host, https, serverConfig } = await getServerOptions({
214
- rsbuildConfig,
215
- getPortSilently
216
- });
217
- const devConfig = mergeDevOptions({ rsbuildConfig, port });
218
- const liveReload = devConfig.liveReload;
219
- return {
220
- devConfig,
221
- serverConfig,
222
- port,
223
- host,
224
- https,
225
- liveReload
226
- };
227
- };
228
- // Annotate the CommonJS export names for ESM import in node:
229
- 0 && (module.exports = {
230
- HMR_SOCK_PATH,
231
- formatRoutes,
232
- getDevOptions,
233
- getPort,
234
- getServerOptions,
235
- mergeDevOptions,
236
- printServerURLs
237
- });
@@ -1,45 +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 httpServer_exports = {};
30
- __export(httpServer_exports, {
31
- createHttpServer: () => createHttpServer
32
- });
33
- module.exports = __toCommonJS(httpServer_exports);
34
- const createHttpServer = async (options) => {
35
- if (options.https) {
36
- const { createServer: createServer2 } = await Promise.resolve().then(() => __toESM(require("node:https")));
37
- return createServer2(options.https, options.middlewares);
38
- }
39
- const { createServer } = await Promise.resolve().then(() => __toESM(require("node:http")));
40
- return createServer(options.middlewares);
41
- };
42
- // Annotate the CommonJS export names for ESM import in node:
43
- 0 && (module.exports = {
44
- createHttpServer
45
- });
@@ -1,31 +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 server_exports = {};
20
- __export(server_exports, {
21
- createDevServer: () => import_devServer.createDevServer,
22
- startProdServer: () => import_prodServer.startProdServer
23
- });
24
- module.exports = __toCommonJS(server_exports);
25
- var import_devServer = require("./devServer");
26
- var import_prodServer = require("./prodServer");
27
- // Annotate the CommonJS export names for ESM import in node:
28
- 0 && (module.exports = {
29
- createDevServer,
30
- startProdServer
31
- });
@@ -1,162 +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 middlewares_exports = {};
30
- __export(middlewares_exports, {
31
- faviconFallbackMiddleware: () => faviconFallbackMiddleware,
32
- getHtmlFallbackMiddleware: () => getHtmlFallbackMiddleware,
33
- getRequestLoggerMiddleware: () => getRequestLoggerMiddleware,
34
- notFoundMiddleware: () => notFoundMiddleware
35
- });
36
- module.exports = __toCommonJS(middlewares_exports);
37
- var import_node_path = __toESM(require("node:path"));
38
- var import_node_url = require("node:url");
39
- var import_shared = require("@rsbuild/shared");
40
- const faviconFallbackMiddleware = (req, res, next) => {
41
- if (req.url === "/favicon.ico") {
42
- res.statusCode = 204;
43
- res.end();
44
- } else {
45
- next();
46
- }
47
- };
48
- const getStatusCodeColor = (status) => {
49
- if (status >= 500) {
50
- return import_shared.color.red;
51
- }
52
- if (status >= 400) {
53
- return import_shared.color.yellow;
54
- }
55
- if (status >= 300) {
56
- return import_shared.color.cyan;
57
- }
58
- if (status >= 200) {
59
- return import_shared.color.green;
60
- }
61
- return (res) => res;
62
- };
63
- const getRequestLoggerMiddleware = async () => {
64
- const { default: onFinished } = await Promise.resolve().then(() => __toESM(require("../../compiled/on-finished/index.js")));
65
- return (req, res, next) => {
66
- const _startAt = process.hrtime();
67
- const logRequest = () => {
68
- const method = req.method;
69
- const url = req.originalUrl || req.url;
70
- const status = Number(res.statusCode);
71
- const statusColor = getStatusCodeColor(status);
72
- const endAt = process.hrtime();
73
- const totalTime = (endAt[0] - _startAt[0]) * 1e3 + (endAt[1] - _startAt[1]) * 1e-6;
74
- (0, import_shared.debug)(
75
- `${statusColor(status)} ${method} ${import_shared.color.gray(url)} ${import_shared.color.gray(
76
- `${totalTime.toFixed(3)} ms`
77
- )}`
78
- );
79
- };
80
- onFinished(res, logRequest);
81
- next();
82
- };
83
- };
84
- const notFoundMiddleware = (_req, res, _next) => {
85
- res.statusCode = 404;
86
- res.end();
87
- };
88
- const getHtmlFallbackMiddleware = ({ htmlFallback, distPath, callback, outputFileSystem }) => {
89
- return async (req, res, next) => {
90
- if (
91
- // Only accept GET or HEAD
92
- req.method !== "GET" && req.method !== "HEAD" || // Require Accept header
93
- !req.headers || typeof req.headers.accept !== "string" || // Ignore JSON requests
94
- req.headers.accept.includes("application/json") || // Require Accept: text/html or */*
95
- !(req.headers.accept.includes("text/html") || req.headers.accept.includes("*/*")) || !req.url || ["/favicon.ico"].includes(req.url)
96
- ) {
97
- return next();
98
- }
99
- const { url } = req;
100
- let pathname = url;
101
- try {
102
- pathname = (0, import_node_url.parse)(url, false, true).pathname;
103
- } catch (err) {
104
- import_shared.logger.error(
105
- new Error(`Invalid URL: ${import_shared.color.yellow(url)}`, { cause: err })
106
- );
107
- return next();
108
- }
109
- const isFileExists = async (filePath) => {
110
- return new Promise((resolve) => {
111
- outputFileSystem.stat(filePath, (_error, stats) => {
112
- resolve(stats?.isFile());
113
- });
114
- });
115
- };
116
- const rewrite = (newUrl, isFallback = false) => {
117
- if (isFallback && (0, import_shared.isDebug)()) {
118
- (0, import_shared.debug)(
119
- `${req.method} ${import_shared.color.gray(
120
- `${req.url} ${import_shared.color.yellow("fallback")} to ${newUrl}`
121
- )}`
122
- );
123
- }
124
- req.url = newUrl;
125
- if (callback) {
126
- return callback(req, res, (...args) => {
127
- next(...args);
128
- });
129
- }
130
- return next();
131
- };
132
- if (pathname.endsWith("/")) {
133
- const newUrl = `${pathname}index.html`;
134
- const filePath = import_node_path.default.join(distPath, pathname, "index.html");
135
- if (await isFileExists(filePath)) {
136
- return rewrite(newUrl);
137
- }
138
- } else if (
139
- // '/main' => '/main.html'
140
- !pathname.endsWith(".html")
141
- ) {
142
- const newUrl = `${pathname}.html`;
143
- const filePath = import_node_path.default.join(distPath, `${pathname}.html`);
144
- if (await isFileExists(filePath)) {
145
- return rewrite(newUrl);
146
- }
147
- }
148
- if (htmlFallback === "index") {
149
- if (await isFileExists(import_node_path.default.join(distPath, "index.html"))) {
150
- return rewrite("/index.html", true);
151
- }
152
- }
153
- next();
154
- };
155
- };
156
- // Annotate the CommonJS export names for ESM import in node:
157
- 0 && (module.exports = {
158
- faviconFallbackMiddleware,
159
- getHtmlFallbackMiddleware,
160
- getRequestLoggerMiddleware,
161
- notFoundMiddleware
162
- });
@@ -1,196 +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 __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __export = (target, all) => {
10
- for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from))
16
- if (!__hasOwnProp.call(to, key) && key !== except)
17
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
- }
19
- return to;
20
- };
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
- var __publicField = (obj, key, value) => {
31
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
32
- return value;
33
- };
34
- var prodServer_exports = {};
35
- __export(prodServer_exports, {
36
- RsbuildProdServer: () => RsbuildProdServer,
37
- startProdServer: () => startProdServer
38
- });
39
- module.exports = __toCommonJS(prodServer_exports);
40
- var import_node_path = require("node:path");
41
- var import_shared = require("@rsbuild/shared");
42
- var import_connect = __toESM(require("@rsbuild/shared/connect"));
43
- var import_sirv = __toESM(require("../../compiled/sirv/index.js"));
44
- var import_helper = require("./helper");
45
- var import_httpServer = require("./httpServer");
46
- var import_middlewares = require("./middlewares");
47
- class RsbuildProdServer {
48
- constructor(options) {
49
- __publicField(this, "app");
50
- __publicField(this, "options");
51
- __publicField(this, "middlewares", (0, import_connect.default)());
52
- this.options = options;
53
- }
54
- // Complete the preparation of services
55
- async onInit(app) {
56
- this.app = app;
57
- await this.applyDefaultMiddlewares();
58
- }
59
- async applyDefaultMiddlewares() {
60
- const { headers, proxy, historyApiFallback, compress } = this.options.serverConfig;
61
- if ((0, import_shared.isDebug)()) {
62
- this.middlewares.use(await (0, import_middlewares.getRequestLoggerMiddleware)());
63
- }
64
- if (compress) {
65
- const { default: compression } = await Promise.resolve().then(() => __toESM(require("../../compiled/http-compression/index.js")));
66
- this.middlewares.use((req, res, next) => {
67
- compression({
68
- gzip: true,
69
- brotli: false
70
- })(req, res, next);
71
- });
72
- }
73
- if (headers) {
74
- this.middlewares.use((_req, res, next) => {
75
- for (const [key, value] of Object.entries(headers)) {
76
- res.setHeader(key, value);
77
- }
78
- next();
79
- });
80
- }
81
- if (proxy) {
82
- const { createProxyMiddleware } = await Promise.resolve().then(() => __toESM(require("./proxy")));
83
- const { middlewares, upgrade } = createProxyMiddleware(proxy);
84
- for (const middleware of middlewares) {
85
- this.middlewares.use(middleware);
86
- }
87
- this.app.on("upgrade", upgrade);
88
- }
89
- this.applyStaticAssetMiddleware();
90
- if (historyApiFallback) {
91
- const { default: connectHistoryApiFallback } = await Promise.resolve().then(() => __toESM(require("../../compiled/connect-history-api-fallback/index.js")));
92
- const historyApiFallbackMiddleware = connectHistoryApiFallback(
93
- historyApiFallback === true ? {} : historyApiFallback
94
- );
95
- this.middlewares.use(historyApiFallbackMiddleware);
96
- this.applyStaticAssetMiddleware();
97
- }
98
- this.middlewares.use(import_middlewares.faviconFallbackMiddleware);
99
- }
100
- applyStaticAssetMiddleware() {
101
- const {
102
- output: { path, assetPrefix },
103
- serverConfig: { htmlFallback },
104
- pwd
105
- } = this.options;
106
- const assetMiddleware = (0, import_sirv.default)((0, import_node_path.join)(pwd, path), {
107
- etag: true,
108
- dev: true,
109
- ignores: ["favicon.ico"],
110
- single: htmlFallback === "index"
111
- });
112
- this.middlewares.use((req, res, next) => {
113
- const url = req.url;
114
- if (assetPrefix && url?.startsWith(assetPrefix)) {
115
- req.url = url.slice(assetPrefix.length);
116
- assetMiddleware(req, res, (...args) => {
117
- req.url = url;
118
- next(...args);
119
- });
120
- } else {
121
- assetMiddleware(req, res, next);
122
- }
123
- });
124
- }
125
- close() {
126
- }
127
- }
128
- async function startProdServer(context, rsbuildConfig, { getPortSilently } = {}) {
129
- if (!(0, import_shared.getNodeEnv)()) {
130
- (0, import_shared.setNodeEnv)("production");
131
- }
132
- const { serverConfig, port, host, https } = await (0, import_helper.getServerOptions)({
133
- rsbuildConfig,
134
- getPortSilently
135
- });
136
- const server = new RsbuildProdServer({
137
- pwd: context.rootPath,
138
- output: {
139
- path: rsbuildConfig.output?.distPath?.root || import_shared.ROOT_DIST_DIR,
140
- assetPrefix: rsbuildConfig.output?.assetPrefix
141
- },
142
- serverConfig
143
- });
144
- await context.hooks.onBeforeStartProdServer.call();
145
- const httpServer = await (0, import_httpServer.createHttpServer)({
146
- https: serverConfig.https,
147
- middlewares: server.middlewares
148
- });
149
- await server.onInit(httpServer);
150
- return new Promise((resolve) => {
151
- httpServer.listen(
152
- {
153
- host,
154
- port
155
- },
156
- async () => {
157
- const routes = (0, import_helper.formatRoutes)(
158
- context.entry,
159
- rsbuildConfig.output?.distPath?.html,
160
- rsbuildConfig.html?.outputStructure
161
- );
162
- await context.hooks.onAfterStartProdServer.call({
163
- port,
164
- routes
165
- });
166
- const protocol = https ? "https" : "http";
167
- const urls = (0, import_shared.getAddressUrls)({ protocol, port });
168
- (0, import_helper.printServerURLs)({
169
- urls,
170
- port,
171
- routes,
172
- protocol,
173
- printUrls: serverConfig.printUrls
174
- });
175
- const onClose = () => {
176
- server.close();
177
- httpServer.close();
178
- };
179
- resolve({
180
- port,
181
- urls: urls.map((item) => item.url),
182
- server: {
183
- close: async () => {
184
- onClose();
185
- }
186
- }
187
- });
188
- }
189
- );
190
- });
191
- }
192
- // Annotate the CommonJS export names for ESM import in node:
193
- 0 && (module.exports = {
194
- RsbuildProdServer,
195
- startProdServer
196
- });