@rsbuild/core 0.2.1 → 0.2.3
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 +1 -1
- package/dist/cli/prepare.js +1 -1
- package/dist/createRsbuild.d.ts +0 -1
- package/dist/createRsbuild.js +4 -3
- package/dist/loadEnv.js +9 -0
- package/dist/provider/core/createContext.js +1 -1
- package/dist/provider/provider.js +3 -3
- package/dist/server/{compiler-dev-middleware/index.d.ts → compilerDevMiddleware.d.ts} +11 -3
- package/dist/server/{compiler-dev-middleware/index.js → compilerDevMiddleware.js} +17 -12
- package/dist/server/devServer.d.ts +3 -3
- package/dist/server/devServer.js +28 -34
- package/dist/server/getDevMiddlewares.d.ts +6 -0
- package/dist/server/{devMiddlewares.js → getDevMiddlewares.js} +19 -14
- package/dist/server/httpServer.js +4 -7
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/prodServer.js +2 -1
- package/dist/server/proxy.d.ts +3 -6
- package/dist/server/proxy.js +5 -3
- package/dist/server/{compiler-dev-middleware/socketServer.d.ts → socketServer.d.ts} +7 -5
- package/dist/server/{compiler-dev-middleware/socketServer.js → socketServer.js} +18 -15
- package/package.json +3 -3
- package/dist/server/devMiddlewares.d.ts +0 -7
package/dist/cli/commands.js
CHANGED
|
@@ -84,7 +84,7 @@ async function init({
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
function runCli() {
|
|
87
|
-
import_commander.program.name("rsbuild").usage("<command> [options]").version("0.2.
|
|
87
|
+
import_commander.program.name("rsbuild").usage("<command> [options]").version("0.2.3");
|
|
88
88
|
import_commander.program.command("dev").option("--open", "open the page in browser on startup").option(
|
|
89
89
|
"--port <port>",
|
|
90
90
|
"specify a port number for Rsbuild Server to listen"
|
package/dist/cli/prepare.js
CHANGED
|
@@ -34,7 +34,7 @@ function prepareCli() {
|
|
|
34
34
|
if (!npm_execpath || npm_execpath.includes("npx-cli.js")) {
|
|
35
35
|
console.log();
|
|
36
36
|
}
|
|
37
|
-
import_rslog.logger.greet(` ${`Rsbuild v${"0.2.
|
|
37
|
+
import_rslog.logger.greet(` ${`Rsbuild v${"0.2.3"}`}
|
|
38
38
|
`);
|
|
39
39
|
}
|
|
40
40
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/createRsbuild.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type RsbuildInstance, type RsbuildProvider, type CreateRsbuildOptions } from '@rsbuild/shared';
|
|
2
2
|
import type { RsbuildConfig } from './types';
|
|
3
3
|
export declare function createRsbuild(options: CreateRsbuildOptions & {
|
|
4
|
-
rsbuildConfig: RsbuildConfig;
|
|
5
4
|
provider?: ({
|
|
6
5
|
rsbuildConfig
|
|
7
6
|
}: {
|
package/dist/createRsbuild.js
CHANGED
|
@@ -40,10 +40,11 @@ const getRspackProvider = async (rsbuildConfig) => {
|
|
|
40
40
|
});
|
|
41
41
|
};
|
|
42
42
|
async function createRsbuild(options) {
|
|
43
|
-
const { rsbuildConfig } = options;
|
|
43
|
+
const { rsbuildConfig = {} } = options;
|
|
44
44
|
const provider = options.provider ? options.provider({ rsbuildConfig }) : await getRspackProvider(rsbuildConfig);
|
|
45
45
|
const rsbuildOptions = {
|
|
46
46
|
cwd: process.cwd(),
|
|
47
|
+
rsbuildConfig,
|
|
47
48
|
...options
|
|
48
49
|
};
|
|
49
50
|
const pluginStore = (0, import_shared.createPluginStore)();
|
|
@@ -55,7 +56,7 @@ async function createRsbuild(options) {
|
|
|
55
56
|
initConfigs,
|
|
56
57
|
inspectConfig,
|
|
57
58
|
createCompiler,
|
|
58
|
-
|
|
59
|
+
getServerAPIs,
|
|
59
60
|
startDevServer,
|
|
60
61
|
applyDefaultPlugins
|
|
61
62
|
} = await provider({
|
|
@@ -88,7 +89,7 @@ async function createRsbuild(options) {
|
|
|
88
89
|
createCompiler,
|
|
89
90
|
initConfigs,
|
|
90
91
|
inspectConfig,
|
|
91
|
-
|
|
92
|
+
getServerAPIs,
|
|
92
93
|
startDevServer,
|
|
93
94
|
context: publicContext
|
|
94
95
|
};
|
package/dist/loadEnv.js
CHANGED
|
@@ -39,6 +39,7 @@ const getEnvFiles = () => {
|
|
|
39
39
|
const { NODE_ENV } = process.env;
|
|
40
40
|
return [".env", ".env.local", `.env.${NODE_ENV}`, `.env.${NODE_ENV}.local`];
|
|
41
41
|
};
|
|
42
|
+
let lastParsed;
|
|
42
43
|
async function loadEnv({
|
|
43
44
|
cwd = process.cwd(),
|
|
44
45
|
prefixes = ["PUBLIC_"]
|
|
@@ -50,6 +51,13 @@ async function loadEnv({
|
|
|
50
51
|
envPaths.forEach((envPath) => {
|
|
51
52
|
Object.assign(parsed, parse(import_fs.default.readFileSync(envPath)));
|
|
52
53
|
});
|
|
54
|
+
if (lastParsed) {
|
|
55
|
+
Object.keys(lastParsed).forEach((key) => {
|
|
56
|
+
if (process.env[key] === lastParsed[key]) {
|
|
57
|
+
delete process.env[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
53
61
|
expand({ parsed });
|
|
54
62
|
const publicVars = {};
|
|
55
63
|
Object.keys(process.env).forEach((key) => {
|
|
@@ -58,6 +66,7 @@ async function loadEnv({
|
|
|
58
66
|
publicVars[`process.env.${key}`] = JSON.stringify(val);
|
|
59
67
|
}
|
|
60
68
|
});
|
|
69
|
+
lastParsed = parsed;
|
|
61
70
|
return {
|
|
62
71
|
parsed,
|
|
63
72
|
publicVars
|
|
@@ -59,7 +59,7 @@ function createContextByConfig(options, bundlerType, config = {}) {
|
|
|
59
59
|
const context = {
|
|
60
60
|
entry: config.source?.entry || getDefaultEntry(rootPath),
|
|
61
61
|
targets: config.output?.targets || [],
|
|
62
|
-
version: "0.2.
|
|
62
|
+
version: "0.2.3",
|
|
63
63
|
rootPath,
|
|
64
64
|
distPath,
|
|
65
65
|
cachePath,
|
|
@@ -67,11 +67,11 @@ function rspackProvider({
|
|
|
67
67
|
rspackConfigs
|
|
68
68
|
});
|
|
69
69
|
},
|
|
70
|
-
async
|
|
71
|
-
const {
|
|
70
|
+
async getServerAPIs(options) {
|
|
71
|
+
const { getServerAPIs } = await Promise.resolve().then(() => __toESM(require("../server/devServer")));
|
|
72
72
|
const { createDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./core/createCompiler")));
|
|
73
73
|
await (0, import_initConfigs.initRsbuildConfig)({ context, pluginStore });
|
|
74
|
-
return
|
|
74
|
+
return getServerAPIs(
|
|
75
75
|
{ context, pluginStore, rsbuildOptions },
|
|
76
76
|
createDevMiddleware,
|
|
77
77
|
options
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import type { IncomingMessage } from 'http';
|
|
4
|
+
import type { Socket } from 'net';
|
|
3
5
|
import type { RsbuildDevMiddlewareOptions, DevMiddlewareAPI, DevMiddleware as CustomDevMiddleware } from '@rsbuild/shared';
|
|
4
6
|
type Options = {
|
|
5
7
|
publicPaths: string[];
|
|
6
8
|
dev: RsbuildDevMiddlewareOptions['dev'];
|
|
7
9
|
devMiddleware?: CustomDevMiddleware;
|
|
8
10
|
};
|
|
9
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Setup compiler-related logic:
|
|
13
|
+
* 1. setup webpack-dev-middleware
|
|
14
|
+
* 2. establish webSocket connect
|
|
15
|
+
*/
|
|
16
|
+
export declare class CompilerDevMiddleware {
|
|
10
17
|
middleware?: DevMiddlewareAPI;
|
|
11
18
|
private devOptions;
|
|
12
19
|
private devMiddleware?;
|
|
@@ -17,7 +24,8 @@ export default class DevMiddleware {
|
|
|
17
24
|
devMiddleware,
|
|
18
25
|
publicPaths
|
|
19
26
|
}: Options);
|
|
20
|
-
init(
|
|
27
|
+
init(): void;
|
|
28
|
+
upgrade(req: IncomingMessage, sock: Socket, head: any): void;
|
|
21
29
|
close(): void;
|
|
22
30
|
sockWrite(type: string, data?: Record<string, any> | string | boolean): void;
|
|
23
31
|
private setupDevMiddleware;
|
|
@@ -26,12 +26,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
31
|
-
|
|
29
|
+
var compilerDevMiddleware_exports = {};
|
|
30
|
+
__export(compilerDevMiddleware_exports, {
|
|
31
|
+
CompilerDevMiddleware: () => CompilerDevMiddleware
|
|
32
32
|
});
|
|
33
|
-
module.exports = __toCommonJS(
|
|
34
|
-
var import_socketServer =
|
|
33
|
+
module.exports = __toCommonJS(compilerDevMiddleware_exports);
|
|
34
|
+
var import_socketServer = require("./socketServer");
|
|
35
35
|
const noop = () => {
|
|
36
36
|
};
|
|
37
37
|
function getHMRClientPath(client) {
|
|
@@ -42,23 +42,24 @@ function getHMRClientPath(client) {
|
|
|
42
42
|
const clientEntry = `${require.resolve("@rsbuild/core/client/hmr")}?${host}${path}${port}${protocol}`;
|
|
43
43
|
return clientEntry;
|
|
44
44
|
}
|
|
45
|
-
class
|
|
45
|
+
class CompilerDevMiddleware {
|
|
46
46
|
constructor({ dev, devMiddleware, publicPaths }) {
|
|
47
47
|
this.devOptions = dev;
|
|
48
48
|
this.publicPaths = publicPaths;
|
|
49
|
-
this.socketServer = new import_socketServer.
|
|
49
|
+
this.socketServer = new import_socketServer.SocketServer(dev);
|
|
50
50
|
this.devMiddleware = devMiddleware;
|
|
51
51
|
}
|
|
52
|
-
init(
|
|
52
|
+
init() {
|
|
53
53
|
if (this.devMiddleware) {
|
|
54
54
|
this.middleware = this.setupDevMiddleware(
|
|
55
55
|
this.devMiddleware,
|
|
56
56
|
this.publicPaths
|
|
57
57
|
);
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
this.socketServer.prepare();
|
|
60
|
+
}
|
|
61
|
+
upgrade(req, sock, head) {
|
|
62
|
+
this.socketServer.upgrade(req, sock, head);
|
|
62
63
|
}
|
|
63
64
|
close() {
|
|
64
65
|
this.socketServer.close();
|
|
@@ -88,7 +89,7 @@ class DevMiddleware {
|
|
|
88
89
|
writeToDisk: devOptions.writeToDisk
|
|
89
90
|
});
|
|
90
91
|
const warp = async (req, res, next) => {
|
|
91
|
-
const url = req
|
|
92
|
+
const { url } = req;
|
|
92
93
|
const assetPrefix = url && publicPaths.find((prefix) => url.startsWith(prefix));
|
|
93
94
|
if (assetPrefix && assetPrefix !== "/") {
|
|
94
95
|
req.url = url.slice(assetPrefix.length - 1);
|
|
@@ -104,3 +105,7 @@ class DevMiddleware {
|
|
|
104
105
|
return warp;
|
|
105
106
|
}
|
|
106
107
|
}
|
|
108
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
109
|
+
0 && (module.exports = {
|
|
110
|
+
CompilerDevMiddleware
|
|
111
|
+
});
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { CreateDevMiddlewareReturns, StartDevServerOptions, StartServerResult,
|
|
1
|
+
import { CreateDevMiddlewareReturns, StartDevServerOptions, StartServerResult, DevServerAPIs } from '@rsbuild/shared';
|
|
2
2
|
import type { Context } from '../types';
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function getServerAPIs<Options extends {
|
|
4
4
|
context: Context;
|
|
5
5
|
}>(options: Options, createDevMiddleware: (options: Options, compiler: StartDevServerOptions['compiler']) => Promise<CreateDevMiddlewareReturns>, {
|
|
6
6
|
compiler: customCompiler,
|
|
7
7
|
getPortSilently
|
|
8
8
|
}?: StartDevServerOptions & {
|
|
9
9
|
defaultPort?: number;
|
|
10
|
-
}): Promise<
|
|
10
|
+
}): Promise<DevServerAPIs>;
|
|
11
11
|
export declare function startDevServer<Options extends {
|
|
12
12
|
context: Context;
|
|
13
13
|
}>(options: Options, createDevMiddleware: (options: Options, compiler: StartDevServerOptions['compiler']) => Promise<CreateDevMiddlewareReturns>, {
|
package/dist/server/devServer.js
CHANGED
|
@@ -28,7 +28,7 @@ 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
|
+
getServerAPIs: () => getServerAPIs,
|
|
32
32
|
startDevServer: () => startDevServer
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(devServer_exports);
|
|
@@ -36,8 +36,9 @@ var import_shared = require("@rsbuild/shared");
|
|
|
36
36
|
var import_connect = __toESM(require("@rsbuild/shared/connect"));
|
|
37
37
|
var import_restart = require("./restart");
|
|
38
38
|
var import_httpServer = require("./httpServer");
|
|
39
|
-
var
|
|
40
|
-
|
|
39
|
+
var import_getDevMiddlewares = require("./getDevMiddlewares");
|
|
40
|
+
var import_middlewares = require("./middlewares");
|
|
41
|
+
async function getServerAPIs(options, createDevMiddleware, {
|
|
41
42
|
compiler: customCompiler,
|
|
42
43
|
getPortSilently
|
|
43
44
|
} = {}) {
|
|
@@ -65,31 +66,28 @@ async function createDevServer(options, createDevMiddleware, {
|
|
|
65
66
|
);
|
|
66
67
|
const publicPaths = compiler.compilers ? compiler.compilers.map(import_shared.getPublicPathFromCompiler) : [(0, import_shared.getPublicPathFromCompiler)(compiler)];
|
|
67
68
|
return {
|
|
68
|
-
|
|
69
|
+
config: { devServerConfig, port, host, https, defaultRoutes },
|
|
69
70
|
beforeStart: async () => {
|
|
70
71
|
await options.context.hooks.onBeforeStartDevServerHook.call();
|
|
71
72
|
},
|
|
72
|
-
afterStart: async (
|
|
73
|
+
afterStart: async (params = {}) => {
|
|
73
74
|
await options.context.hooks.onAfterStartDevServerHook.call({
|
|
74
|
-
port:
|
|
75
|
-
routes
|
|
75
|
+
port: params.port || port,
|
|
76
|
+
routes: params.routes || defaultRoutes
|
|
76
77
|
});
|
|
77
78
|
},
|
|
78
|
-
getMiddlewares: async ({
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
devMiddleware,
|
|
85
|
-
dev,
|
|
86
|
-
output: {
|
|
87
|
-
distPath: rsbuildConfig.output?.distPath?.root || import_shared.ROOT_DIST_DIR,
|
|
88
|
-
publicPaths
|
|
89
|
-
}
|
|
79
|
+
getMiddlewares: async (overrides = {}) => await (0, import_getDevMiddlewares.getMiddlewares)({
|
|
80
|
+
pwd: options.context.rootPath,
|
|
81
|
+
devMiddleware,
|
|
82
|
+
dev: {
|
|
83
|
+
...devServerConfig,
|
|
84
|
+
...overrides
|
|
90
85
|
},
|
|
91
|
-
|
|
92
|
-
|
|
86
|
+
output: {
|
|
87
|
+
distPath: rsbuildConfig.output?.distPath?.root || import_shared.ROOT_DIST_DIR,
|
|
88
|
+
publicPaths
|
|
89
|
+
}
|
|
90
|
+
})
|
|
93
91
|
};
|
|
94
92
|
}
|
|
95
93
|
async function startDevServer(options, createDevMiddleware, {
|
|
@@ -99,15 +97,15 @@ async function startDevServer(options, createDevMiddleware, {
|
|
|
99
97
|
getPortSilently
|
|
100
98
|
} = {}) {
|
|
101
99
|
(0, import_shared.debug)("create dev server");
|
|
102
|
-
const
|
|
100
|
+
const serverAPIs = await getServerAPIs(options, createDevMiddleware, {
|
|
103
101
|
compiler,
|
|
104
102
|
printURLs,
|
|
105
103
|
logger: customLogger,
|
|
106
104
|
getPortSilently
|
|
107
105
|
});
|
|
108
106
|
const {
|
|
109
|
-
|
|
110
|
-
} =
|
|
107
|
+
config: { devServerConfig, port, host, https, defaultRoutes }
|
|
108
|
+
} = serverAPIs;
|
|
111
109
|
const logger = customLogger ?? import_shared.logger;
|
|
112
110
|
const middlewares = (0, import_connect.default)();
|
|
113
111
|
const httpServer = await (0, import_httpServer.createHttpServer)({
|
|
@@ -115,7 +113,7 @@ async function startDevServer(options, createDevMiddleware, {
|
|
|
115
113
|
middlewares
|
|
116
114
|
});
|
|
117
115
|
(0, import_shared.debug)("create dev server done");
|
|
118
|
-
await
|
|
116
|
+
await serverAPIs.beforeStart();
|
|
119
117
|
const protocol = https ? "https" : "http";
|
|
120
118
|
let urls = (0, import_shared.getAddressUrls)(protocol, port, host);
|
|
121
119
|
if (printURLs) {
|
|
@@ -127,12 +125,11 @@ async function startDevServer(options, createDevMiddleware, {
|
|
|
127
125
|
}
|
|
128
126
|
(0, import_shared.printServerURLs)(urls, defaultRoutes, logger);
|
|
129
127
|
}
|
|
130
|
-
const devMiddlewares = await
|
|
131
|
-
dev: devServerConfig,
|
|
132
|
-
app: httpServer
|
|
133
|
-
});
|
|
128
|
+
const devMiddlewares = await serverAPIs.getMiddlewares();
|
|
134
129
|
devMiddlewares.middlewares.forEach((m) => middlewares.use(m));
|
|
130
|
+
middlewares.use(import_middlewares.notFoundMiddleware);
|
|
135
131
|
(0, import_shared.debug)("listen dev server");
|
|
132
|
+
httpServer.on("upgrade", devMiddlewares.onUpgrade);
|
|
136
133
|
return new Promise((resolve) => {
|
|
137
134
|
httpServer.listen(
|
|
138
135
|
{
|
|
@@ -144,10 +141,7 @@ async function startDevServer(options, createDevMiddleware, {
|
|
|
144
141
|
throw err;
|
|
145
142
|
}
|
|
146
143
|
(0, import_shared.debug)("listen dev server done");
|
|
147
|
-
await
|
|
148
|
-
port,
|
|
149
|
-
routes: defaultRoutes
|
|
150
|
-
});
|
|
144
|
+
await serverAPIs.afterStart();
|
|
151
145
|
const onClose = async () => {
|
|
152
146
|
await devMiddlewares.close();
|
|
153
147
|
httpServer.close();
|
|
@@ -168,6 +162,6 @@ async function startDevServer(options, createDevMiddleware, {
|
|
|
168
162
|
}
|
|
169
163
|
// Annotate the CommonJS export names for ESM import in node:
|
|
170
164
|
0 && (module.exports = {
|
|
171
|
-
|
|
165
|
+
getServerAPIs,
|
|
172
166
|
startDevServer
|
|
173
167
|
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { UpgradeEvent, RequestHandler, RsbuildDevMiddlewareOptions } from '@rsbuild/shared';
|
|
2
|
+
export declare const getMiddlewares: (options: RsbuildDevMiddlewareOptions) => Promise<{
|
|
3
|
+
close: () => Promise<void>;
|
|
4
|
+
onUpgrade: UpgradeEvent;
|
|
5
|
+
middlewares: RequestHandler[];
|
|
6
|
+
}>;
|
|
@@ -26,13 +26,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var getDevMiddlewares_exports = {};
|
|
30
|
+
__export(getDevMiddlewares_exports, {
|
|
31
31
|
getMiddlewares: () => getMiddlewares
|
|
32
32
|
});
|
|
33
|
-
module.exports = __toCommonJS(
|
|
33
|
+
module.exports = __toCommonJS(getDevMiddlewares_exports);
|
|
34
34
|
var import_url = __toESM(require("url"));
|
|
35
|
-
var
|
|
35
|
+
var import_compilerDevMiddleware = require("./compilerDevMiddleware");
|
|
36
36
|
var import_middlewares = require("./middlewares");
|
|
37
37
|
var import_path = require("path");
|
|
38
38
|
const applySetupMiddlewares = (dev, devMiddleware) => {
|
|
@@ -54,13 +54,13 @@ const applySetupMiddlewares = (dev, devMiddleware) => {
|
|
|
54
54
|
return { before, after };
|
|
55
55
|
};
|
|
56
56
|
const applyDefaultMiddlewares = async ({
|
|
57
|
-
app,
|
|
58
57
|
middlewares,
|
|
59
58
|
dev,
|
|
60
59
|
devMiddleware,
|
|
61
60
|
output,
|
|
62
61
|
pwd
|
|
63
62
|
}) => {
|
|
63
|
+
const upgradeEvents = [];
|
|
64
64
|
if (dev.compress) {
|
|
65
65
|
const { default: compression } = await Promise.resolve().then(() => __toESM(require("../../compiled/http-compression")));
|
|
66
66
|
middlewares.push((req, res, next) => {
|
|
@@ -86,16 +86,17 @@ const applyDefaultMiddlewares = async ({
|
|
|
86
86
|
});
|
|
87
87
|
if (dev.proxy) {
|
|
88
88
|
const { createProxyMiddleware } = await Promise.resolve().then(() => __toESM(require("./proxy")));
|
|
89
|
-
const { middlewares: proxyMiddlewares } = createProxyMiddleware(
|
|
90
|
-
dev.proxy
|
|
91
|
-
app
|
|
89
|
+
const { middlewares: proxyMiddlewares, upgrade } = createProxyMiddleware(
|
|
90
|
+
dev.proxy
|
|
92
91
|
);
|
|
92
|
+
upgradeEvents.push(upgrade);
|
|
93
93
|
proxyMiddlewares.forEach((middleware) => {
|
|
94
94
|
middlewares.push(middleware);
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
|
-
devMiddleware.init(
|
|
97
|
+
devMiddleware.init();
|
|
98
98
|
devMiddleware.middleware && middlewares.push(devMiddleware.middleware);
|
|
99
|
+
upgradeEvents.push(devMiddleware.upgrade.bind(devMiddleware));
|
|
99
100
|
if (dev.publicDir && dev.publicDir.name) {
|
|
100
101
|
const { default: sirv } = await Promise.resolve().then(() => __toESM(require("../../compiled/sirv")));
|
|
101
102
|
const { name } = dev.publicDir;
|
|
@@ -123,19 +124,22 @@ const applyDefaultMiddlewares = async ({
|
|
|
123
124
|
devMiddleware.middleware && middlewares.push(devMiddleware.middleware);
|
|
124
125
|
}
|
|
125
126
|
middlewares.push(import_middlewares.faviconFallbackMiddleware);
|
|
126
|
-
|
|
127
|
+
return {
|
|
128
|
+
onUpgrade: (...args) => {
|
|
129
|
+
upgradeEvents.forEach((cb) => cb(...args));
|
|
130
|
+
}
|
|
131
|
+
};
|
|
127
132
|
};
|
|
128
|
-
const getMiddlewares = async (options
|
|
133
|
+
const getMiddlewares = async (options) => {
|
|
129
134
|
const middlewares = [];
|
|
130
|
-
const devMiddleware = new
|
|
135
|
+
const devMiddleware = new import_compilerDevMiddleware.CompilerDevMiddleware({
|
|
131
136
|
dev: options.dev,
|
|
132
137
|
publicPaths: options.output.publicPaths,
|
|
133
138
|
devMiddleware: options.devMiddleware
|
|
134
139
|
});
|
|
135
140
|
const { before, after } = applySetupMiddlewares(options.dev, devMiddleware);
|
|
136
141
|
before.forEach((fn) => middlewares.push(fn));
|
|
137
|
-
await applyDefaultMiddlewares({
|
|
138
|
-
app,
|
|
142
|
+
const { onUpgrade } = await applyDefaultMiddlewares({
|
|
139
143
|
middlewares,
|
|
140
144
|
dev: options.dev,
|
|
141
145
|
devMiddleware,
|
|
@@ -147,6 +151,7 @@ const getMiddlewares = async (options, app) => {
|
|
|
147
151
|
close: async () => {
|
|
148
152
|
devMiddleware.close();
|
|
149
153
|
},
|
|
154
|
+
onUpgrade,
|
|
150
155
|
middlewares
|
|
151
156
|
};
|
|
152
157
|
};
|
|
@@ -32,15 +32,12 @@ __export(httpServer_exports, {
|
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(httpServer_exports);
|
|
34
34
|
const createHttpServer = async (options) => {
|
|
35
|
-
let app;
|
|
36
35
|
if (options.https) {
|
|
37
|
-
const { createServer } = await Promise.resolve().then(() => __toESM(require("https")));
|
|
38
|
-
|
|
39
|
-
} else {
|
|
40
|
-
const { createServer } = await Promise.resolve().then(() => __toESM(require("http")));
|
|
41
|
-
app = createServer(options.middlewares);
|
|
36
|
+
const { createServer: createServer2 } = await Promise.resolve().then(() => __toESM(require("https")));
|
|
37
|
+
return createServer2(options.https, options.middlewares);
|
|
42
38
|
}
|
|
43
|
-
|
|
39
|
+
const { createServer } = await Promise.resolve().then(() => __toESM(require("http")));
|
|
40
|
+
return createServer(options.middlewares);
|
|
44
41
|
};
|
|
45
42
|
// Annotate the CommonJS export names for ESM import in node:
|
|
46
43
|
0 && (module.exports = {
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { startDevServer,
|
|
1
|
+
export { startDevServer, getServerAPIs } from './devServer';
|
|
2
2
|
export { startProdServer } from './prodServer';
|
package/dist/server/index.js
CHANGED
|
@@ -18,7 +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
|
-
|
|
21
|
+
getServerAPIs: () => import_devServer.getServerAPIs,
|
|
22
22
|
startDevServer: () => import_devServer.startDevServer,
|
|
23
23
|
startProdServer: () => import_prodServer.startProdServer
|
|
24
24
|
});
|
|
@@ -27,7 +27,7 @@ var import_devServer = require("./devServer");
|
|
|
27
27
|
var import_prodServer = require("./prodServer");
|
|
28
28
|
// Annotate the CommonJS export names for ESM import in node:
|
|
29
29
|
0 && (module.exports = {
|
|
30
|
-
|
|
30
|
+
getServerAPIs,
|
|
31
31
|
startDevServer,
|
|
32
32
|
startProdServer
|
|
33
33
|
});
|
|
@@ -69,10 +69,11 @@ class RsbuildProdServer {
|
|
|
69
69
|
}
|
|
70
70
|
if (proxy) {
|
|
71
71
|
const { createProxyMiddleware } = await Promise.resolve().then(() => __toESM(require("./proxy")));
|
|
72
|
-
const { middlewares } = createProxyMiddleware(proxy
|
|
72
|
+
const { middlewares, upgrade } = createProxyMiddleware(proxy);
|
|
73
73
|
middlewares.forEach((middleware) => {
|
|
74
74
|
this.middlewares.use(middleware);
|
|
75
75
|
});
|
|
76
|
+
this.app.on("upgrade", upgrade);
|
|
76
77
|
}
|
|
77
78
|
this.applyStaticAssetMiddleware();
|
|
78
79
|
if (historyApiFallback) {
|
package/dist/server/proxy.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import http from 'http';
|
|
3
|
-
import { RequestHandler } from '@rsbuild/shared/http-proxy-middleware';
|
|
4
|
-
import { type ProxyDetail, type RequestHandler as Middleware, type ProxyOptions } from '@rsbuild/shared';
|
|
1
|
+
import { type ProxyDetail, type RequestHandler as Middleware, type ProxyOptions, type UpgradeEvent } from '@rsbuild/shared';
|
|
5
2
|
export declare function formatProxyOptions(proxyOptions: ProxyOptions): ProxyDetail[];
|
|
6
|
-
export
|
|
7
|
-
export declare const createProxyMiddleware: (proxyOptions: ProxyOptions, app: http.Server) => {
|
|
3
|
+
export declare const createProxyMiddleware: (proxyOptions: ProxyOptions) => {
|
|
8
4
|
middlewares: Middleware[];
|
|
5
|
+
upgrade: UpgradeEvent;
|
|
9
6
|
};
|
package/dist/server/proxy.js
CHANGED
|
@@ -51,7 +51,7 @@ function formatProxyOptions(proxyOptions) {
|
|
|
51
51
|
}
|
|
52
52
|
return ret;
|
|
53
53
|
}
|
|
54
|
-
const createProxyMiddleware = (proxyOptions
|
|
54
|
+
const createProxyMiddleware = (proxyOptions) => {
|
|
55
55
|
const formattedOptionsList = formatProxyOptions(proxyOptions);
|
|
56
56
|
const proxyMiddlewares = [];
|
|
57
57
|
const middlewares = [];
|
|
@@ -79,8 +79,10 @@ const createProxyMiddleware = (proxyOptions, app) => {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
};
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
return {
|
|
83
|
+
middlewares,
|
|
84
|
+
upgrade: handleUpgrade
|
|
85
|
+
};
|
|
84
86
|
};
|
|
85
87
|
// Annotate the CommonJS export names for ESM import in node:
|
|
86
88
|
0 && (module.exports = {
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
|
|
3
|
-
import
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import type { IncomingMessage } from 'http';
|
|
4
|
+
import type { Socket } from 'net';
|
|
5
|
+
import ws from '../../compiled/ws';
|
|
4
6
|
import { type Stats, type RsbuildDevMiddlewareOptions } from '@rsbuild/shared';
|
|
5
|
-
export
|
|
7
|
+
export declare class SocketServer {
|
|
6
8
|
private wsServer;
|
|
7
9
|
private readonly sockets;
|
|
8
10
|
private readonly options;
|
|
9
|
-
private app?;
|
|
10
11
|
private stats?;
|
|
11
12
|
private timer;
|
|
12
13
|
constructor(options: RsbuildDevMiddlewareOptions['dev']);
|
|
13
|
-
|
|
14
|
+
upgrade(req: IncomingMessage, sock: Socket, head: any): void;
|
|
15
|
+
prepare(): void;
|
|
14
16
|
updateStats(stats: Stats): void;
|
|
15
17
|
sockWrite(type: string, data?: Record<string, any> | string | boolean): void;
|
|
16
18
|
singleWrite(socket: ws, type: string, data?: Record<string, any> | string | boolean): void;
|
|
@@ -28,10 +28,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var socketServer_exports = {};
|
|
30
30
|
__export(socketServer_exports, {
|
|
31
|
-
|
|
31
|
+
SocketServer: () => SocketServer
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(socketServer_exports);
|
|
34
|
-
var import_ws = __toESM(require("
|
|
34
|
+
var import_ws = __toESM(require("../../compiled/ws"));
|
|
35
35
|
var import_shared = require("@rsbuild/shared");
|
|
36
36
|
class SocketServer {
|
|
37
37
|
constructor(options) {
|
|
@@ -39,21 +39,20 @@ class SocketServer {
|
|
|
39
39
|
this.timer = null;
|
|
40
40
|
this.options = options;
|
|
41
41
|
}
|
|
42
|
+
upgrade(req, sock, head) {
|
|
43
|
+
if (!this.wsServer.shouldHandle(req)) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.wsServer.handleUpgrade(req, sock, head, (connection) => {
|
|
47
|
+
this.wsServer.emit("connection", connection, req);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
42
50
|
// create socket, install socket handler, bind socket event
|
|
43
|
-
prepare(
|
|
44
|
-
this.app = app;
|
|
51
|
+
prepare() {
|
|
45
52
|
this.wsServer = new import_ws.default.Server({
|
|
46
53
|
noServer: true,
|
|
47
54
|
path: this.options.client?.path
|
|
48
55
|
});
|
|
49
|
-
this.app.on("upgrade", (req, sock, head) => {
|
|
50
|
-
if (!this.wsServer.shouldHandle(req)) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
this.wsServer.handleUpgrade(req, sock, head, (connection) => {
|
|
54
|
-
this.wsServer.emit("connection", connection, req);
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
56
|
this.wsServer.on("error", (err) => {
|
|
58
57
|
import_shared.logger.error(err);
|
|
59
58
|
});
|
|
@@ -147,11 +146,11 @@ class SocketServer {
|
|
|
147
146
|
this.sockWrite("hash", stats.hash);
|
|
148
147
|
if (stats.errors && stats.errors.length > 0) {
|
|
149
148
|
return this.sockWrite("errors", stats.errors);
|
|
150
|
-
}
|
|
149
|
+
}
|
|
150
|
+
if (stats.warnings && stats.warnings.length > 0) {
|
|
151
151
|
return this.sockWrite("warnings", stats.warnings);
|
|
152
|
-
} else {
|
|
153
|
-
return this.sockWrite("ok");
|
|
154
152
|
}
|
|
153
|
+
return this.sockWrite("ok");
|
|
155
154
|
}
|
|
156
155
|
// send message to connecting socket
|
|
157
156
|
send(connection, message) {
|
|
@@ -161,3 +160,7 @@ class SocketServer {
|
|
|
161
160
|
connection.send(message);
|
|
162
161
|
}
|
|
163
162
|
}
|
|
163
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
164
|
+
0 && (module.exports = {
|
|
165
|
+
SocketServer
|
|
166
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsbuild/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
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,11 +56,11 @@
|
|
|
56
56
|
"types.d.ts"
|
|
57
57
|
],
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@rspack/core": "0.4.
|
|
59
|
+
"@rspack/core": "0.4.3",
|
|
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.2.
|
|
63
|
+
"@rsbuild/shared": "0.2.3"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/node": "16.x",
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Server } from 'http';
|
|
3
|
-
import { RequestHandler, RsbuildDevMiddlewareOptions } from '@rsbuild/shared';
|
|
4
|
-
export declare const getMiddlewares: (options: RsbuildDevMiddlewareOptions, app: Server) => Promise<{
|
|
5
|
-
close: () => Promise<void>;
|
|
6
|
-
middlewares: RequestHandler[];
|
|
7
|
-
}>;
|