@rsbuild/core 0.1.9 → 0.2.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/dist/cli/commands.js +6 -3
- package/dist/cli/config.d.ts +7 -1
- package/dist/cli/config.js +6 -3
- package/dist/cli/prepare.js +1 -1
- package/dist/createRsbuild.js +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -0
- package/dist/loadEnv.d.ts +2 -2
- package/dist/loadEnv.js +2 -2
- package/dist/plugins/asset.js +2 -2
- package/dist/plugins/basic.d.ts +5 -0
- package/dist/plugins/basic.js +68 -0
- package/dist/plugins/html.d.ts +1 -2
- package/dist/plugins/html.js +8 -8
- package/dist/plugins/index.js +2 -3
- package/dist/plugins/inlineChunk.js +25 -28
- package/dist/plugins/networkPerformance.js +3 -11
- package/dist/plugins/nodeAddons.js +1 -1
- package/dist/plugins/preloadOrPrefetch.js +4 -10
- package/dist/plugins/wasm.js +1 -1
- package/dist/provider/core/createCompiler.js +15 -7
- package/dist/provider/core/createContext.d.ts +3 -3
- package/dist/provider/core/createContext.js +13 -27
- package/dist/provider/core/initConfigs.d.ts +2 -2
- package/dist/provider/core/initConfigs.js +4 -3
- package/dist/provider/core/initPlugins.js +15 -12
- package/dist/provider/core/inspectConfig.d.ts +2 -20
- package/dist/provider/core/inspectConfig.js +6 -6
- package/dist/provider/css-modules-typescript-pre-loader/index.js +1 -1
- package/dist/provider/css-modules-typescript-pre-loader/{postcss-icss-extract-plugin.js → postcssIcssExtractPlugin.js} +5 -5
- package/dist/provider/index.d.ts +1 -2
- package/dist/provider/index.js +4 -7
- package/dist/provider/plugins/css.js +3 -7
- package/dist/provider/plugins/less.js +1 -1
- package/dist/provider/plugins/output.js +2 -2
- package/dist/provider/plugins/resolve.js +0 -5
- package/dist/provider/plugins/server.d.ts +2 -0
- package/dist/provider/plugins/server.js +70 -0
- package/dist/provider/plugins/swc.js +1 -1
- package/dist/provider/provider.js +15 -1
- package/dist/provider/shared.d.ts +1 -2
- package/dist/provider/shared.js +2 -15
- package/dist/rspack/HtmlAppIconPlugin.d.ts +0 -3
- package/dist/rspack/HtmlAppIconPlugin.js +2 -2
- package/dist/rspack/HtmlBasicPlugin.d.ts +0 -3
- package/dist/rspack/HtmlBasicPlugin.js +24 -10
- package/dist/rspack/HtmlCrossOriginPlugin.d.ts +0 -3
- package/dist/rspack/HtmlCrossOriginPlugin.js +12 -2
- package/dist/rspack/HtmlNetworkPerformancePlugin.d.ts +1 -3
- package/dist/rspack/HtmlNetworkPerformancePlugin.js +13 -3
- package/dist/rspack/HtmlNoncePlugin.d.ts +0 -3
- package/dist/rspack/HtmlNoncePlugin.js +12 -2
- package/dist/rspack/HtmlTagsPlugin.d.ts +1 -7
- package/dist/rspack/HtmlTagsPlugin.js +12 -1
- package/dist/rspack/InlineChunkHtmlPlugin.d.ts +2 -3
- package/dist/rspack/InlineChunkHtmlPlugin.js +17 -3
- package/dist/rspack/RemoveCssSourcemapPlugin.d.ts +1 -3
- package/dist/rspack/RemoveCssSourcemapPlugin.js +1 -2
- package/dist/rspack/{HtmlPreloadOrPrefetchPlugin/index.d.ts → preload/HtmlPreloadOrPrefetchPlugin.d.ts} +3 -4
- package/dist/rspack/{HtmlPreloadOrPrefetchPlugin/index.js → preload/HtmlPreloadOrPrefetchPlugin.js} +17 -7
- package/dist/server/{dev-middleware → compiler-dev-middleware}/index.d.ts +2 -2
- package/dist/server/{dev-middleware → compiler-dev-middleware}/index.js +3 -3
- package/dist/server/{dev-middleware → compiler-dev-middleware}/socketServer.d.ts +2 -2
- package/dist/server/devMiddlewares.d.ts +7 -0
- package/dist/server/devMiddlewares.js +156 -0
- package/dist/server/devServer.d.ts +10 -23
- package/dist/server/devServer.js +77 -162
- package/dist/server/httpServer.d.ts +8 -0
- package/dist/server/httpServer.js +48 -0
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +2 -0
- package/dist/server/prodServer.d.ts +0 -5
- package/dist/server/prodServer.js +11 -25
- package/package.json +4 -4
- package/dist/plugins/devtool.d.ts +0 -2
- package/dist/plugins/devtool.js +0 -46
- package/dist/plugins/server.d.ts +0 -2
- package/dist/plugins/server.js +0 -56
- package/dist/provider/plugins/basic.d.ts +0 -5
- package/dist/provider/plugins/basic.js +0 -34
- /package/dist/provider/css-modules-typescript-pre-loader/{postcss-icss-extract-plugin.d.ts → postcssIcssExtractPlugin.d.ts} +0 -0
- /package/dist/rspack/{HtmlPreloadOrPrefetchPlugin → preload}/helpers/determineAsValue.d.ts +0 -0
- /package/dist/rspack/{HtmlPreloadOrPrefetchPlugin → preload}/helpers/determineAsValue.js +0 -0
- /package/dist/rspack/{HtmlPreloadOrPrefetchPlugin → preload}/helpers/doesChunkBelongToHtml.d.ts +0 -0
- /package/dist/rspack/{HtmlPreloadOrPrefetchPlugin → preload}/helpers/doesChunkBelongToHtml.js +0 -0
- /package/dist/rspack/{HtmlPreloadOrPrefetchPlugin → preload}/helpers/extractChunks.d.ts +0 -0
- /package/dist/rspack/{HtmlPreloadOrPrefetchPlugin → preload}/helpers/extractChunks.js +0 -0
- /package/dist/rspack/{HtmlPreloadOrPrefetchPlugin → preload}/helpers/index.d.ts +0 -0
- /package/dist/rspack/{HtmlPreloadOrPrefetchPlugin → preload}/helpers/index.js +0 -0
- /package/dist/rspack/{HtmlPreloadOrPrefetchPlugin → preload}/helpers/type.d.ts +0 -0
- /package/dist/rspack/{HtmlPreloadOrPrefetchPlugin → preload}/helpers/type.js +0 -0
- /package/dist/server/{dev-middleware → compiler-dev-middleware}/socketServer.js +0 -0
|
@@ -1,30 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
import { Server } from 'http';
|
|
5
|
-
import type { ListenOptions } from 'net';
|
|
6
|
-
import { RsbuildDevServerOptions, CreateDevMiddlewareReturns, StartDevServerOptions, StartServerResult } from '@rsbuild/shared';
|
|
7
|
-
import connect from '@rsbuild/shared/connect';
|
|
1
|
+
import { CreateDevMiddlewareReturns, StartDevServerOptions, StartServerResult, DevServerAPI } from '@rsbuild/shared';
|
|
8
2
|
import type { Context } from '../types';
|
|
9
|
-
export declare
|
|
10
|
-
private readonly dev;
|
|
11
|
-
private readonly devMiddleware;
|
|
12
|
-
private pwd;
|
|
13
|
-
private app;
|
|
14
|
-
private output;
|
|
15
|
-
middlewares: connect.Server;
|
|
16
|
-
constructor(options: RsbuildDevServerOptions);
|
|
17
|
-
private applySetupMiddlewares;
|
|
18
|
-
onInit(app: Server): Promise<void>;
|
|
19
|
-
private applyDefaultMiddlewares;
|
|
20
|
-
createHTTPServer(): Promise<Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | import("https").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>>;
|
|
21
|
-
listen(options?: number | ListenOptions | undefined, listener?: (err?: Error) => Promise<void>): void;
|
|
22
|
-
close(): void;
|
|
23
|
-
}
|
|
24
|
-
export declare function startDevServer<Options extends {
|
|
3
|
+
export declare function createDevServer<Options extends {
|
|
25
4
|
context: Context;
|
|
26
5
|
}>(options: Options, createDevMiddleware: (options: Options, compiler: StartDevServerOptions['compiler']) => Promise<CreateDevMiddlewareReturns>, {
|
|
27
6
|
compiler: customCompiler,
|
|
7
|
+
getPortSilently
|
|
8
|
+
}?: StartDevServerOptions & {
|
|
9
|
+
defaultPort?: number;
|
|
10
|
+
}): Promise<DevServerAPI>;
|
|
11
|
+
export declare function startDevServer<Options extends {
|
|
12
|
+
context: Context;
|
|
13
|
+
}>(options: Options, createDevMiddleware: (options: Options, compiler: StartDevServerOptions['compiler']) => Promise<CreateDevMiddlewareReturns>, {
|
|
14
|
+
compiler,
|
|
28
15
|
printURLs,
|
|
29
16
|
logger: customLogger,
|
|
30
17
|
getPortSilently
|
package/dist/server/devServer.js
CHANGED
|
@@ -28,189 +28,96 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var devServer_exports = {};
|
|
30
30
|
__export(devServer_exports, {
|
|
31
|
-
|
|
31
|
+
createDevServer: () => createDevServer,
|
|
32
32
|
startDevServer: () => startDevServer
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(devServer_exports);
|
|
35
|
-
var import_http = require("http");
|
|
36
|
-
var import_https = require("https");
|
|
37
|
-
var import_url = __toESM(require("url"));
|
|
38
35
|
var import_shared = require("@rsbuild/shared");
|
|
39
|
-
var import_dev_middleware = __toESM(require("./dev-middleware"));
|
|
40
36
|
var import_connect = __toESM(require("@rsbuild/shared/connect"));
|
|
41
|
-
var import_middlewares = require("./middlewares");
|
|
42
|
-
var import_path = require("path");
|
|
43
37
|
var import_restart = require("./restart");
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
this.pwd = options.pwd;
|
|
48
|
-
this.dev = options.dev;
|
|
49
|
-
this.output = options.output;
|
|
50
|
-
this.devMiddleware = new import_dev_middleware.default({
|
|
51
|
-
dev: this.dev,
|
|
52
|
-
publicPaths: options.output.publicPaths,
|
|
53
|
-
devMiddleware: options.devMiddleware
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
applySetupMiddlewares() {
|
|
57
|
-
const setupMiddlewares = this.dev.setupMiddlewares || [];
|
|
58
|
-
const serverOptions = {
|
|
59
|
-
sockWrite: (type, data) => this.devMiddleware.sockWrite(type, data)
|
|
60
|
-
};
|
|
61
|
-
const before = [];
|
|
62
|
-
const after = [];
|
|
63
|
-
setupMiddlewares.forEach((handler) => {
|
|
64
|
-
handler(
|
|
65
|
-
{
|
|
66
|
-
unshift: (...handlers) => before.unshift(...handlers),
|
|
67
|
-
push: (...handlers) => after.push(...handlers)
|
|
68
|
-
},
|
|
69
|
-
serverOptions
|
|
70
|
-
);
|
|
71
|
-
});
|
|
72
|
-
return { before, after };
|
|
73
|
-
}
|
|
74
|
-
// Complete the preparation of services
|
|
75
|
-
async onInit(app) {
|
|
76
|
-
this.app = app;
|
|
77
|
-
const { before, after } = this.applySetupMiddlewares();
|
|
78
|
-
before.forEach((fn) => this.middlewares.use(fn));
|
|
79
|
-
await this.applyDefaultMiddlewares(app);
|
|
80
|
-
after.forEach((fn) => this.middlewares.use(fn));
|
|
81
|
-
}
|
|
82
|
-
async applyDefaultMiddlewares(app) {
|
|
83
|
-
const { dev, devMiddleware } = this;
|
|
84
|
-
if (dev.compress) {
|
|
85
|
-
const { default: compression } = await Promise.resolve().then(() => __toESM(require("../../compiled/http-compression")));
|
|
86
|
-
this.middlewares.use((req, res, next) => {
|
|
87
|
-
compression({
|
|
88
|
-
gzip: true,
|
|
89
|
-
brotli: false
|
|
90
|
-
})(req, res, next);
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
this.middlewares.use((req, res, next) => {
|
|
94
|
-
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
95
|
-
const path = req.url ? import_url.default.parse(req.url).pathname : "";
|
|
96
|
-
if (path?.includes("hot-update")) {
|
|
97
|
-
res.setHeader("Access-Control-Allow-Credentials", "false");
|
|
98
|
-
}
|
|
99
|
-
const confHeaders = dev.headers;
|
|
100
|
-
if (confHeaders) {
|
|
101
|
-
for (const [key, value] of Object.entries(confHeaders)) {
|
|
102
|
-
res.setHeader(key, value);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
next();
|
|
106
|
-
});
|
|
107
|
-
if (dev.proxy) {
|
|
108
|
-
const { createProxyMiddleware } = await Promise.resolve().then(() => __toESM(require("./proxy")));
|
|
109
|
-
const { middlewares } = createProxyMiddleware(dev.proxy, app);
|
|
110
|
-
middlewares.forEach((middleware) => {
|
|
111
|
-
this.middlewares.use(middleware);
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
devMiddleware.init(app);
|
|
115
|
-
devMiddleware.middleware && this.middlewares.use(devMiddleware.middleware);
|
|
116
|
-
if (dev.publicDir && dev.publicDir.name) {
|
|
117
|
-
const { default: sirv } = await Promise.resolve().then(() => __toESM(require("../../compiled/sirv")));
|
|
118
|
-
const { name } = dev.publicDir;
|
|
119
|
-
const publicDir = (0, import_path.isAbsolute)(name) ? name : (0, import_path.join)(this.pwd, name);
|
|
120
|
-
const assetMiddleware = sirv(publicDir, {
|
|
121
|
-
etag: true,
|
|
122
|
-
dev: true
|
|
123
|
-
});
|
|
124
|
-
this.middlewares.use(assetMiddleware);
|
|
125
|
-
}
|
|
126
|
-
const { distPath } = this.output;
|
|
127
|
-
this.middlewares.use(
|
|
128
|
-
(0, import_middlewares.getHtmlFallbackMiddleware)({
|
|
129
|
-
distPath: (0, import_path.isAbsolute)(distPath) ? distPath : (0, import_path.join)(this.pwd, distPath),
|
|
130
|
-
callback: devMiddleware.middleware,
|
|
131
|
-
htmlFallback: this.dev.htmlFallback
|
|
132
|
-
})
|
|
133
|
-
);
|
|
134
|
-
if (dev.historyApiFallback) {
|
|
135
|
-
const { default: connectHistoryApiFallback } = await Promise.resolve().then(() => __toESM(require("../../compiled/connect-history-api-fallback")));
|
|
136
|
-
const historyApiFallbackMiddleware = connectHistoryApiFallback(
|
|
137
|
-
dev.historyApiFallback === true ? {} : dev.historyApiFallback
|
|
138
|
-
);
|
|
139
|
-
this.middlewares.use(historyApiFallbackMiddleware);
|
|
140
|
-
devMiddleware.middleware && this.middlewares.use(devMiddleware.middleware);
|
|
141
|
-
}
|
|
142
|
-
this.middlewares.use(import_middlewares.faviconFallbackMiddleware);
|
|
143
|
-
this.middlewares.use(import_middlewares.notFoundMiddleware);
|
|
144
|
-
}
|
|
145
|
-
async createHTTPServer() {
|
|
146
|
-
const { dev } = this;
|
|
147
|
-
const devHttpsOption = typeof dev === "object" && dev.https;
|
|
148
|
-
if (devHttpsOption) {
|
|
149
|
-
return (0, import_https.createServer)(devHttpsOption, this.middlewares);
|
|
150
|
-
} else {
|
|
151
|
-
return (0, import_http.createServer)(this.middlewares);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
listen(options, listener) {
|
|
155
|
-
const callback = () => {
|
|
156
|
-
listener?.();
|
|
157
|
-
};
|
|
158
|
-
if (typeof options === "object") {
|
|
159
|
-
this.app.listen(options, callback);
|
|
160
|
-
} else {
|
|
161
|
-
this.app.listen(options || 8080, callback);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
close() {
|
|
165
|
-
this.devMiddleware.close();
|
|
166
|
-
this.app.close();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
async function startDevServer(options, createDevMiddleware, {
|
|
38
|
+
var import_httpServer = require("./httpServer");
|
|
39
|
+
var import_devMiddlewares = require("./devMiddlewares");
|
|
40
|
+
async function createDevServer(options, createDevMiddleware, {
|
|
170
41
|
compiler: customCompiler,
|
|
171
|
-
printURLs = true,
|
|
172
|
-
logger: customLogger,
|
|
173
42
|
getPortSilently
|
|
174
43
|
} = {}) {
|
|
175
44
|
if (!process.env.NODE_ENV) {
|
|
176
45
|
process.env.NODE_ENV = "development";
|
|
177
46
|
}
|
|
178
47
|
const rsbuildConfig = options.context.config;
|
|
179
|
-
const logger = customLogger ?? import_shared.logger;
|
|
180
48
|
const { devServerConfig, port, host, https } = await (0, import_shared.getDevOptions)({
|
|
181
49
|
rsbuildConfig,
|
|
182
50
|
getPortSilently
|
|
183
51
|
});
|
|
52
|
+
const defaultRoutes = (0, import_shared.formatRoutes)(
|
|
53
|
+
options.context.entry,
|
|
54
|
+
rsbuildConfig.output?.distPath?.html,
|
|
55
|
+
rsbuildConfig.html?.outputStructure
|
|
56
|
+
);
|
|
184
57
|
options.context.devServer = {
|
|
185
58
|
hostname: host,
|
|
186
59
|
port,
|
|
187
60
|
https
|
|
188
61
|
};
|
|
189
|
-
const protocol = https ? "https" : "http";
|
|
190
|
-
let urls = (0, import_shared.getAddressUrls)(protocol, port, host);
|
|
191
|
-
const routes = (0, import_shared.formatRoutes)(
|
|
192
|
-
options.context.entry,
|
|
193
|
-
rsbuildConfig.output?.distPath?.html,
|
|
194
|
-
rsbuildConfig.html?.outputStructure
|
|
195
|
-
);
|
|
196
|
-
(0, import_shared.debug)("create dev server");
|
|
197
62
|
const { devMiddleware, compiler } = await createDevMiddleware(
|
|
198
63
|
options,
|
|
199
64
|
customCompiler
|
|
200
65
|
);
|
|
201
66
|
const publicPaths = compiler.compilers ? compiler.compilers.map(import_shared.getPublicPathFromCompiler) : [(0, import_shared.getPublicPathFromCompiler)(compiler)];
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
67
|
+
return {
|
|
68
|
+
resolvedConfig: { devServerConfig, port, host, https, defaultRoutes },
|
|
69
|
+
beforeStart: async () => {
|
|
70
|
+
await options.context.hooks.onBeforeStartDevServerHook.call();
|
|
71
|
+
},
|
|
72
|
+
afterStart: async ({ port: port2, routes }) => {
|
|
73
|
+
await options.context.hooks.onAfterStartDevServerHook.call({
|
|
74
|
+
port: port2,
|
|
75
|
+
routes
|
|
76
|
+
});
|
|
77
|
+
},
|
|
78
|
+
getMiddlewares: async ({
|
|
79
|
+
dev,
|
|
80
|
+
app
|
|
81
|
+
}) => await (0, import_devMiddlewares.getMiddlewares)(
|
|
82
|
+
{
|
|
83
|
+
pwd: options.context.rootPath,
|
|
84
|
+
devMiddleware,
|
|
85
|
+
dev,
|
|
86
|
+
output: {
|
|
87
|
+
distPath: rsbuildConfig.output?.distPath?.root || import_shared.ROOT_DIST_DIR,
|
|
88
|
+
publicPaths
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
app
|
|
92
|
+
)
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
async function startDevServer(options, createDevMiddleware, {
|
|
96
|
+
compiler,
|
|
97
|
+
printURLs = true,
|
|
98
|
+
logger: customLogger,
|
|
99
|
+
getPortSilently
|
|
100
|
+
} = {}) {
|
|
101
|
+
(0, import_shared.debug)("create dev server");
|
|
102
|
+
const rsbuildServer = await createDevServer(options, createDevMiddleware, {
|
|
103
|
+
compiler,
|
|
104
|
+
printURLs,
|
|
105
|
+
logger: customLogger,
|
|
106
|
+
getPortSilently
|
|
107
|
+
});
|
|
108
|
+
const {
|
|
109
|
+
resolvedConfig: { devServerConfig, port, host, https, defaultRoutes }
|
|
110
|
+
} = rsbuildServer;
|
|
111
|
+
const logger = customLogger ?? import_shared.logger;
|
|
112
|
+
const middlewares = (0, import_connect.default)();
|
|
113
|
+
const httpServer = await (0, import_httpServer.createHttpServer)({
|
|
114
|
+
https: devServerConfig.https,
|
|
115
|
+
middlewares
|
|
210
116
|
});
|
|
211
117
|
(0, import_shared.debug)("create dev server done");
|
|
212
|
-
await
|
|
213
|
-
const
|
|
118
|
+
await rsbuildServer.beforeStart();
|
|
119
|
+
const protocol = https ? "https" : "http";
|
|
120
|
+
let urls = (0, import_shared.getAddressUrls)(protocol, port, host);
|
|
214
121
|
if (printURLs) {
|
|
215
122
|
if ((0, import_shared.isFunction)(printURLs)) {
|
|
216
123
|
urls = printURLs(urls);
|
|
@@ -218,12 +125,16 @@ async function startDevServer(options, createDevMiddleware, {
|
|
|
218
125
|
throw new Error("Please return an array in the `printURLs` function.");
|
|
219
126
|
}
|
|
220
127
|
}
|
|
221
|
-
(0, import_shared.printServerURLs)(urls,
|
|
128
|
+
(0, import_shared.printServerURLs)(urls, defaultRoutes, logger);
|
|
222
129
|
}
|
|
223
|
-
await
|
|
130
|
+
const devMiddlewares = await rsbuildServer.getMiddlewares({
|
|
131
|
+
dev: devServerConfig,
|
|
132
|
+
app: httpServer
|
|
133
|
+
});
|
|
134
|
+
devMiddlewares.middlewares.forEach((m) => middlewares.use(m));
|
|
224
135
|
(0, import_shared.debug)("listen dev server");
|
|
225
136
|
return new Promise((resolve) => {
|
|
226
|
-
|
|
137
|
+
httpServer.listen(
|
|
227
138
|
{
|
|
228
139
|
host,
|
|
229
140
|
port
|
|
@@ -233,17 +144,21 @@ async function startDevServer(options, createDevMiddleware, {
|
|
|
233
144
|
throw err;
|
|
234
145
|
}
|
|
235
146
|
(0, import_shared.debug)("listen dev server done");
|
|
236
|
-
await
|
|
147
|
+
await rsbuildServer.afterStart({
|
|
237
148
|
port,
|
|
238
|
-
routes
|
|
149
|
+
routes: defaultRoutes
|
|
239
150
|
});
|
|
240
|
-
|
|
151
|
+
const onClose = async () => {
|
|
152
|
+
await devMiddlewares.close();
|
|
153
|
+
httpServer.close();
|
|
154
|
+
};
|
|
155
|
+
(0, import_restart.registerCleaner)(onClose);
|
|
241
156
|
resolve({
|
|
242
157
|
port,
|
|
243
158
|
urls: urls.map((item) => item.url),
|
|
244
159
|
server: {
|
|
245
160
|
close: async () => {
|
|
246
|
-
|
|
161
|
+
await onClose();
|
|
247
162
|
}
|
|
248
163
|
}
|
|
249
164
|
});
|
|
@@ -253,6 +168,6 @@ async function startDevServer(options, createDevMiddleware, {
|
|
|
253
168
|
}
|
|
254
169
|
// Annotate the CommonJS export names for ESM import in node:
|
|
255
170
|
0 && (module.exports = {
|
|
256
|
-
|
|
171
|
+
createDevServer,
|
|
257
172
|
startDevServer
|
|
258
173
|
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import type { ServerConfig } from '@rsbuild/shared';
|
|
4
|
+
import type connect from '@rsbuild/shared/connect';
|
|
5
|
+
export declare const createHttpServer: (options: {
|
|
6
|
+
https?: ServerConfig['https'];
|
|
7
|
+
middlewares: connect.Server;
|
|
8
|
+
}) => Promise<import("https").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>>;
|
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
let app;
|
|
36
|
+
if (options.https) {
|
|
37
|
+
const { createServer } = await Promise.resolve().then(() => __toESM(require("https")));
|
|
38
|
+
app = createServer(options.https, options.middlewares);
|
|
39
|
+
} else {
|
|
40
|
+
const { createServer } = await Promise.resolve().then(() => __toESM(require("http")));
|
|
41
|
+
app = createServer(options.middlewares);
|
|
42
|
+
}
|
|
43
|
+
return app;
|
|
44
|
+
};
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
createHttpServer
|
|
48
|
+
});
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { startDevServer } from './devServer';
|
|
1
|
+
export { startDevServer, createDevServer } from './devServer';
|
|
2
2
|
export { startProdServer } from './prodServer';
|
package/dist/server/index.js
CHANGED
|
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var server_exports = {};
|
|
20
20
|
__export(server_exports, {
|
|
21
|
+
createDevServer: () => import_devServer.createDevServer,
|
|
21
22
|
startDevServer: () => import_devServer.startDevServer,
|
|
22
23
|
startProdServer: () => import_prodServer.startProdServer
|
|
23
24
|
});
|
|
@@ -26,6 +27,7 @@ var import_devServer = require("./devServer");
|
|
|
26
27
|
var import_prodServer = require("./prodServer");
|
|
27
28
|
// Annotate the CommonJS export names for ESM import in node:
|
|
28
29
|
0 && (module.exports = {
|
|
30
|
+
createDevServer,
|
|
29
31
|
startDevServer,
|
|
30
32
|
startProdServer
|
|
31
33
|
});
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
import type { ListenOptions } from 'net';
|
|
5
2
|
import { Server } from 'http';
|
|
6
3
|
import connect from '@rsbuild/shared/connect';
|
|
7
4
|
import { type ServerConfig, type RsbuildConfig, type StartServerResult, type PreviewServerOptions } from '@rsbuild/shared';
|
|
@@ -22,8 +19,6 @@ export declare class RsbuildProdServer {
|
|
|
22
19
|
onInit(app: Server): Promise<void>;
|
|
23
20
|
private applyDefaultMiddlewares;
|
|
24
21
|
private applyStaticAssetMiddleware;
|
|
25
|
-
createHTTPServer(): Promise<Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse> | import("https").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>>;
|
|
26
|
-
listen(options?: number | ListenOptions | undefined, listener?: () => Promise<void>): void;
|
|
27
22
|
close(): void;
|
|
28
23
|
}
|
|
29
24
|
export declare function startProdServer(context: Context, rsbuildConfig: RsbuildConfig, {
|
|
@@ -32,13 +32,12 @@ __export(prodServer_exports, {
|
|
|
32
32
|
startProdServer: () => startProdServer
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(prodServer_exports);
|
|
35
|
-
var import_http = require("http");
|
|
36
|
-
var import_https = require("https");
|
|
37
35
|
var import_connect = __toESM(require("@rsbuild/shared/connect"));
|
|
38
36
|
var import_path = require("path");
|
|
39
37
|
var import_sirv = __toESM(require("../../compiled/sirv"));
|
|
40
38
|
var import_shared = require("@rsbuild/shared");
|
|
41
39
|
var import_middlewares = require("./middlewares");
|
|
40
|
+
var import_httpServer = require("./httpServer");
|
|
42
41
|
class RsbuildProdServer {
|
|
43
42
|
constructor(options) {
|
|
44
43
|
this.middlewares = (0, import_connect.default)();
|
|
@@ -111,27 +110,7 @@ class RsbuildProdServer {
|
|
|
111
110
|
}
|
|
112
111
|
});
|
|
113
112
|
}
|
|
114
|
-
async createHTTPServer() {
|
|
115
|
-
const { serverConfig } = this.options;
|
|
116
|
-
const httpsOption = serverConfig.https;
|
|
117
|
-
if (httpsOption) {
|
|
118
|
-
return (0, import_https.createServer)(httpsOption, this.middlewares);
|
|
119
|
-
} else {
|
|
120
|
-
return (0, import_http.createServer)(this.middlewares);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
listen(options, listener) {
|
|
124
|
-
const callback = () => {
|
|
125
|
-
listener?.();
|
|
126
|
-
};
|
|
127
|
-
if (typeof options === "object") {
|
|
128
|
-
this.app.listen(options, callback);
|
|
129
|
-
} else {
|
|
130
|
-
this.app.listen(options || 8080, callback);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
113
|
close() {
|
|
134
|
-
this.app.close();
|
|
135
114
|
}
|
|
136
115
|
}
|
|
137
116
|
async function startProdServer(context, rsbuildConfig, { printURLs = true, getPortSilently } = {}) {
|
|
@@ -151,10 +130,13 @@ async function startProdServer(context, rsbuildConfig, { printURLs = true, getPo
|
|
|
151
130
|
serverConfig
|
|
152
131
|
});
|
|
153
132
|
await context.hooks.onBeforeStartProdServerHook.call();
|
|
154
|
-
const httpServer = await
|
|
133
|
+
const httpServer = await (0, import_httpServer.createHttpServer)({
|
|
134
|
+
https: serverConfig.https,
|
|
135
|
+
middlewares: server.middlewares
|
|
136
|
+
});
|
|
155
137
|
await server.onInit(httpServer);
|
|
156
138
|
return new Promise((resolve) => {
|
|
157
|
-
|
|
139
|
+
httpServer.listen(
|
|
158
140
|
{
|
|
159
141
|
host,
|
|
160
142
|
port
|
|
@@ -176,12 +158,16 @@ async function startProdServer(context, rsbuildConfig, { printURLs = true, getPo
|
|
|
176
158
|
routes
|
|
177
159
|
);
|
|
178
160
|
}
|
|
161
|
+
const onClose = () => {
|
|
162
|
+
server.close();
|
|
163
|
+
httpServer.close();
|
|
164
|
+
};
|
|
179
165
|
resolve({
|
|
180
166
|
port,
|
|
181
167
|
urls: urls.map((item) => item.url),
|
|
182
168
|
server: {
|
|
183
169
|
close: async () => {
|
|
184
|
-
|
|
170
|
+
onClose();
|
|
185
171
|
}
|
|
186
172
|
}
|
|
187
173
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsbuild/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Unleash the power of Rspack with the out-of-the-box build tool.",
|
|
5
5
|
"homepage": "https://rsbuild.dev",
|
|
6
6
|
"bugs": {
|
|
@@ -56,14 +56,14 @@
|
|
|
56
56
|
"types.d.ts"
|
|
57
57
|
],
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@rspack/core": "0.4.
|
|
59
|
+
"@rspack/core": "0.4.2",
|
|
60
60
|
"core-js": "~3.32.2",
|
|
61
61
|
"html-webpack-plugin": "npm:html-rspack-plugin@5.5.7",
|
|
62
62
|
"postcss": "8.4.31",
|
|
63
|
-
"@rsbuild/shared": "0.
|
|
63
|
+
"@rsbuild/shared": "0.2.0"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@types/node": "
|
|
66
|
+
"@types/node": "16.x",
|
|
67
67
|
"typescript": "^5.3.0",
|
|
68
68
|
"webpack": "^5.89.0"
|
|
69
69
|
},
|
package/dist/plugins/devtool.js
DELETED
|
@@ -1,46 +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 devtool_exports = {};
|
|
20
|
-
__export(devtool_exports, {
|
|
21
|
-
pluginDevtool: () => pluginDevtool
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(devtool_exports);
|
|
24
|
-
var import_shared = require("@rsbuild/shared");
|
|
25
|
-
const pluginDevtool = () => ({
|
|
26
|
-
name: "rsbuild:devtool",
|
|
27
|
-
setup(api) {
|
|
28
|
-
api.modifyBundlerChain((chain, { isProd, isServer }) => {
|
|
29
|
-
const config = api.getNormalizedConfig();
|
|
30
|
-
if (!(0, import_shared.isUseJsSourceMap)(config)) {
|
|
31
|
-
chain.devtool(false);
|
|
32
|
-
} else {
|
|
33
|
-
const prodDevTool = isServer ? "source-map" : "hidden-source-map";
|
|
34
|
-
const devtool = isProd ? (
|
|
35
|
-
// hide the source map URL in production to avoid Chrome warning
|
|
36
|
-
prodDevTool
|
|
37
|
-
) : "cheap-module-source-map";
|
|
38
|
-
chain.devtool(devtool);
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
-
0 && (module.exports = {
|
|
45
|
-
pluginDevtool
|
|
46
|
-
});
|
package/dist/plugins/server.d.ts
DELETED
package/dist/plugins/server.js
DELETED
|
@@ -1,56 +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
|
-
pluginServer: () => pluginServer
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(server_exports);
|
|
24
|
-
var import_shared = require("@rsbuild/shared");
|
|
25
|
-
const pluginServer = () => ({
|
|
26
|
-
name: "rsbuild:server",
|
|
27
|
-
setup(api) {
|
|
28
|
-
api.modifyRsbuildConfig((rsbuildConfig, { mergeRsbuildConfig }) => {
|
|
29
|
-
if ((0, import_shared.isProd)() && rsbuildConfig.server?.publicDir) {
|
|
30
|
-
const { name, copyOnBuild } = rsbuildConfig.server?.publicDir;
|
|
31
|
-
if (!copyOnBuild || !name) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
const { copy } = rsbuildConfig.output || {};
|
|
35
|
-
const publicPattern = [
|
|
36
|
-
{
|
|
37
|
-
from: name,
|
|
38
|
-
to: "",
|
|
39
|
-
noErrorOnMissing: true
|
|
40
|
-
}
|
|
41
|
-
];
|
|
42
|
-
return mergeRsbuildConfig(rsbuildConfig, {
|
|
43
|
-
output: {
|
|
44
|
-
copy: Array.isArray(copy) ? publicPattern : {
|
|
45
|
-
patterns: publicPattern
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
-
0 && (module.exports = {
|
|
55
|
-
pluginServer
|
|
56
|
-
});
|