@rsbuild/core 1.6.8 → 1.6.10
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/compiled/css-loader/index.js +18 -18
- package/compiled/html-rspack-plugin/index.js +14 -14
- package/compiled/postcss-loader/index.js +6 -6
- package/compiled/rspack-manifest-plugin/index.js +4 -4
- package/dist/0~open.js +1 -1
- package/dist/{506.js → 131.js} +70 -60
- package/dist/136.mjs +42 -0
- package/dist/client/hmr.js +172 -173
- package/dist/index.cjs +46 -37
- package/dist/index.js +1 -1
- package/dist/transformLoader.mjs +1 -36
- package/dist/transformRawLoader.mjs +3 -36
- package/dist-types/client/hmr.d.ts +9 -0
- package/dist-types/server/assets-middleware/index.d.ts +8 -0
- package/package.json +3 -3
- package/dist/476.mjs +0 -8
- /package/dist/{506.js.LICENSE.txt → 131.js.LICENSE.txt} +0 -0
package/dist/client/hmr.js
CHANGED
|
@@ -1,191 +1,190 @@
|
|
|
1
|
-
const config = RSBUILD_CLIENT_CONFIG;
|
|
2
|
-
const serverHost = RSBUILD_SERVER_HOST;
|
|
3
|
-
const serverPort = RSBUILD_SERVER_PORT;
|
|
4
|
-
const queuedMessages = [];
|
|
5
|
-
let lastHash;
|
|
6
|
-
let hasBuildErrors = false;
|
|
7
|
-
function formatURL(fallback) {
|
|
8
|
-
const { location } = self;
|
|
9
|
-
const hostname = (fallback ? serverHost : config.host) || location.hostname;
|
|
10
|
-
const port = (fallback ? serverPort : config.port) || location.port;
|
|
11
|
-
const protocol = config.protocol || ('https:' === location.protocol ? 'wss' : 'ws');
|
|
12
|
-
const pathname = config.path;
|
|
13
|
-
if ('undefined' != typeof URL) {
|
|
14
|
-
const url = new URL('http://localhost');
|
|
15
|
-
url.port = String(port);
|
|
16
|
-
url.hostname = hostname;
|
|
17
|
-
url.protocol = protocol;
|
|
18
|
-
url.pathname = pathname;
|
|
19
|
-
url.searchParams.append('token', RSBUILD_WEB_SOCKET_TOKEN);
|
|
20
|
-
return url.toString();
|
|
21
|
-
}
|
|
22
|
-
const colon = -1 === protocol.indexOf(':') ? ':' : '';
|
|
23
|
-
return `${protocol}${colon}//${hostname}:${port}${pathname}?token=${RSBUILD_WEB_SOCKET_TOKEN}`;
|
|
24
|
-
}
|
|
25
|
-
function clearBuildErrors() {
|
|
26
|
-
if (console.clear && hasBuildErrors) console.clear();
|
|
27
|
-
hasBuildErrors = false;
|
|
28
|
-
}
|
|
29
1
|
let createOverlay;
|
|
30
2
|
let clearOverlay;
|
|
31
3
|
const registerOverlay = (createFn, clearFn)=>{
|
|
32
4
|
createOverlay = createFn;
|
|
33
5
|
clearOverlay = clearFn;
|
|
34
6
|
};
|
|
35
|
-
function
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
function
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
7
|
+
function init({ token, config, serverHost, serverPort, liveReload, browserLogs }) {
|
|
8
|
+
const queuedMessages = [];
|
|
9
|
+
let lastHash;
|
|
10
|
+
let hasBuildErrors = false;
|
|
11
|
+
function formatURL(fallback) {
|
|
12
|
+
const { location } = self;
|
|
13
|
+
const hostname = (fallback ? serverHost : config.host) || location.hostname;
|
|
14
|
+
const port = (fallback ? serverPort : config.port) || location.port;
|
|
15
|
+
const protocol = config.protocol || ('https:' === location.protocol ? 'wss' : 'ws');
|
|
16
|
+
const pathname = config.path;
|
|
17
|
+
if ('undefined' != typeof URL) {
|
|
18
|
+
const url = new URL('http://localhost');
|
|
19
|
+
url.port = String(port);
|
|
20
|
+
url.hostname = hostname;
|
|
21
|
+
url.protocol = protocol;
|
|
22
|
+
url.pathname = pathname;
|
|
23
|
+
url.searchParams.append('token', token);
|
|
24
|
+
return url.toString();
|
|
45
25
|
}
|
|
46
|
-
|
|
26
|
+
const colon = -1 === protocol.indexOf(':') ? ':' : '';
|
|
27
|
+
return `${protocol}${colon}//${hostname}:${port}${pathname}?token=${token}`;
|
|
47
28
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
clearBuildErrors();
|
|
52
|
-
hasBuildErrors = true;
|
|
53
|
-
for (const error of text)console.error(error);
|
|
54
|
-
if (createOverlay) createOverlay(html);
|
|
55
|
-
}
|
|
56
|
-
const shouldUpdate = ()=>lastHash !== __webpack_hash__;
|
|
57
|
-
const handleApplyUpdates = (err, updatedModules)=>{
|
|
58
|
-
const forcedReload = err || !updatedModules;
|
|
59
|
-
if (forcedReload) {
|
|
60
|
-
if (err) console.error('[rsbuild] HMR update failed, performing full reload: ', err);
|
|
61
|
-
reloadPage();
|
|
62
|
-
return;
|
|
29
|
+
function clearBuildErrors() {
|
|
30
|
+
if (console.clear && hasBuildErrors) console.clear();
|
|
31
|
+
hasBuildErrors = false;
|
|
63
32
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
if (!shouldUpdate()) return;
|
|
68
|
-
if (import.meta.webpackHot) {
|
|
69
|
-
if ('idle' !== import.meta.webpackHot.status()) return;
|
|
70
|
-
import.meta.webpackHot.check(true).then((updatedModules)=>{
|
|
71
|
-
handleApplyUpdates(null, updatedModules);
|
|
72
|
-
}, (err)=>{
|
|
73
|
-
handleApplyUpdates(err, null);
|
|
74
|
-
});
|
|
75
|
-
return;
|
|
33
|
+
function handleSuccess() {
|
|
34
|
+
clearBuildErrors();
|
|
35
|
+
tryApplyUpdates();
|
|
76
36
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
let
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
console.info('[rsbuild] WebSocket connected.');
|
|
88
|
-
reconnectCount = 0;
|
|
89
|
-
pingIntervalId = setInterval(()=>{
|
|
90
|
-
socketSend({
|
|
91
|
-
type: 'ping'
|
|
92
|
-
});
|
|
93
|
-
}, 30000);
|
|
94
|
-
if (queuedMessages.length) {
|
|
95
|
-
queuedMessages.forEach(socketSend);
|
|
96
|
-
queuedMessages.length = 0;
|
|
37
|
+
function handleWarnings({ text }) {
|
|
38
|
+
clearBuildErrors();
|
|
39
|
+
for(let i = 0; i < text.length; i++){
|
|
40
|
+
if (5 === i) {
|
|
41
|
+
console.warn('[rsbuild] Additional warnings detected. View complete log in terminal for details.');
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
console.warn(text[i]);
|
|
45
|
+
}
|
|
46
|
+
tryApplyUpdates();
|
|
97
47
|
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
case 'static-changed':
|
|
110
|
-
case 'content-changed':
|
|
48
|
+
function handleErrors({ text, html }) {
|
|
49
|
+
clearBuildErrors();
|
|
50
|
+
hasBuildErrors = true;
|
|
51
|
+
for (const error of text)console.error(error);
|
|
52
|
+
if (createOverlay) createOverlay(html);
|
|
53
|
+
}
|
|
54
|
+
const shouldUpdate = ()=>lastHash !== __webpack_hash__;
|
|
55
|
+
const handleApplyUpdates = (err, updatedModules)=>{
|
|
56
|
+
const forcedReload = err || !updatedModules;
|
|
57
|
+
if (forcedReload) {
|
|
58
|
+
if (err) console.error('[rsbuild] HMR update failed, performing full reload: ', err);
|
|
111
59
|
reloadPage();
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
tryApplyUpdates();
|
|
63
|
+
};
|
|
64
|
+
function tryApplyUpdates() {
|
|
65
|
+
if (!shouldUpdate()) return;
|
|
66
|
+
if (import.meta.webpackHot) {
|
|
67
|
+
if ('idle' !== import.meta.webpackHot.status()) return;
|
|
68
|
+
import.meta.webpackHot.check(true).then((updatedModules)=>{
|
|
69
|
+
handleApplyUpdates(null, updatedModules);
|
|
70
|
+
}, (err)=>{
|
|
71
|
+
handleApplyUpdates(err, null);
|
|
72
|
+
});
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
reloadPage();
|
|
119
76
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
77
|
+
let socket = null;
|
|
78
|
+
let reconnectCount = 0;
|
|
79
|
+
let pingIntervalId;
|
|
80
|
+
const isSocketReady = ()=>socket && socket.readyState === socket.OPEN;
|
|
81
|
+
const socketSend = (data)=>{
|
|
82
|
+
if (isSocketReady()) socket.send(JSON.stringify(data));
|
|
83
|
+
};
|
|
84
|
+
function onOpen() {
|
|
85
|
+
console.info('[rsbuild] WebSocket connected.');
|
|
86
|
+
reconnectCount = 0;
|
|
87
|
+
pingIntervalId = setInterval(()=>{
|
|
88
|
+
socketSend({
|
|
89
|
+
type: 'ping'
|
|
90
|
+
});
|
|
91
|
+
}, 30000);
|
|
92
|
+
if (queuedMessages.length) {
|
|
93
|
+
queuedMessages.forEach(socketSend);
|
|
94
|
+
queuedMessages.length = 0;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function onMessage(e) {
|
|
98
|
+
const message = JSON.parse(e.data);
|
|
99
|
+
switch(message.type){
|
|
100
|
+
case 'hash':
|
|
101
|
+
lastHash = message.data;
|
|
102
|
+
if (clearOverlay && shouldUpdate()) clearOverlay();
|
|
103
|
+
break;
|
|
104
|
+
case 'ok':
|
|
105
|
+
handleSuccess();
|
|
106
|
+
break;
|
|
107
|
+
case 'static-changed':
|
|
108
|
+
case 'content-changed':
|
|
109
|
+
reloadPage();
|
|
110
|
+
break;
|
|
111
|
+
case 'warnings':
|
|
112
|
+
handleWarnings(message.data);
|
|
113
|
+
break;
|
|
114
|
+
case 'errors':
|
|
115
|
+
handleErrors(message.data);
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function onClose() {
|
|
120
|
+
if (reconnectCount >= config.reconnect) {
|
|
121
|
+
if (config.reconnect > 0) console.warn('[rsbuild] WebSocket connection failed after maximum retry attempts.');
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (0 === reconnectCount) console.info('[rsbuild] WebSocket connection lost. Reconnecting...');
|
|
135
125
|
removeListeners();
|
|
136
126
|
socket = null;
|
|
137
|
-
|
|
127
|
+
reconnectCount++;
|
|
128
|
+
setTimeout(connect, 1000 * 1.5 ** reconnectCount);
|
|
138
129
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if (isSocketReady()) socketSend(messageInfo);
|
|
147
|
-
else queuedMessages.push(messageInfo);
|
|
148
|
-
}
|
|
149
|
-
function onUnhandledRejection({ reason }) {
|
|
150
|
-
let message;
|
|
151
|
-
let stack;
|
|
152
|
-
if (reason instanceof Error) {
|
|
153
|
-
message = reason.name ? `${reason.name}: ${reason.message}` : reason.message;
|
|
154
|
-
stack = reason.stack;
|
|
155
|
-
} else if ('string' == typeof reason) message = reason;
|
|
156
|
-
else try {
|
|
157
|
-
message = JSON.stringify(reason);
|
|
158
|
-
} catch (_) {
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
sendError(`Uncaught (in promise) ${message}`, stack);
|
|
162
|
-
}
|
|
163
|
-
function connect(fallback = false) {
|
|
164
|
-
if (0 === reconnectCount) console.info('[rsbuild] WebSocket connecting...');
|
|
165
|
-
const socketUrl = formatURL(fallback);
|
|
166
|
-
socket = new WebSocket(socketUrl);
|
|
167
|
-
socket.addEventListener('open', onOpen);
|
|
168
|
-
socket.addEventListener('close', onClose);
|
|
169
|
-
socket.addEventListener('message', onMessage);
|
|
170
|
-
if (!fallback) socket.addEventListener('error', onSocketError);
|
|
171
|
-
}
|
|
172
|
-
function removeListeners() {
|
|
173
|
-
clearInterval(pingIntervalId);
|
|
174
|
-
if (socket) {
|
|
175
|
-
socket.removeEventListener('open', onOpen);
|
|
176
|
-
socket.removeEventListener('close', onClose);
|
|
177
|
-
socket.removeEventListener('message', onMessage);
|
|
178
|
-
socket.removeEventListener('error', onSocketError);
|
|
130
|
+
function onSocketError() {
|
|
131
|
+
if (formatURL() !== formatURL(true)) {
|
|
132
|
+
console.error('[rsbuild] WebSocket connection failed. Trying direct connection fallback.');
|
|
133
|
+
removeListeners();
|
|
134
|
+
socket = null;
|
|
135
|
+
connect(true);
|
|
136
|
+
}
|
|
179
137
|
}
|
|
138
|
+
function sendError(message, stack) {
|
|
139
|
+
const messageInfo = {
|
|
140
|
+
type: 'client-error',
|
|
141
|
+
message,
|
|
142
|
+
stack
|
|
143
|
+
};
|
|
144
|
+
if (isSocketReady()) socketSend(messageInfo);
|
|
145
|
+
else queuedMessages.push(messageInfo);
|
|
146
|
+
}
|
|
147
|
+
function onUnhandledRejection({ reason }) {
|
|
148
|
+
let message;
|
|
149
|
+
let stack;
|
|
150
|
+
if (reason instanceof Error) {
|
|
151
|
+
message = reason.name ? `${reason.name}: ${reason.message}` : reason.message;
|
|
152
|
+
stack = reason.stack;
|
|
153
|
+
} else if ('string' == typeof reason) message = reason;
|
|
154
|
+
else try {
|
|
155
|
+
message = JSON.stringify(reason);
|
|
156
|
+
} catch (_) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
sendError(`Uncaught (in promise) ${message}`, stack);
|
|
160
|
+
}
|
|
161
|
+
function connect(fallback = false) {
|
|
162
|
+
if (0 === reconnectCount) console.info('[rsbuild] WebSocket connecting...');
|
|
163
|
+
const socketUrl = formatURL(fallback);
|
|
164
|
+
socket = new WebSocket(socketUrl);
|
|
165
|
+
socket.addEventListener('open', onOpen);
|
|
166
|
+
socket.addEventListener('close', onClose);
|
|
167
|
+
socket.addEventListener('message', onMessage);
|
|
168
|
+
if (!fallback) socket.addEventListener('error', onSocketError);
|
|
169
|
+
}
|
|
170
|
+
function removeListeners() {
|
|
171
|
+
clearInterval(pingIntervalId);
|
|
172
|
+
if (socket) {
|
|
173
|
+
socket.removeEventListener('open', onOpen);
|
|
174
|
+
socket.removeEventListener('close', onClose);
|
|
175
|
+
socket.removeEventListener('message', onMessage);
|
|
176
|
+
socket.removeEventListener('error', onSocketError);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
function reloadPage() {
|
|
180
|
+
if (liveReload) window.location.reload();
|
|
181
|
+
}
|
|
182
|
+
if (browserLogs && 'undefined' != typeof window) {
|
|
183
|
+
window.addEventListener('error', ({ message, error })=>{
|
|
184
|
+
sendError(message, error instanceof Error ? error.stack : void 0);
|
|
185
|
+
});
|
|
186
|
+
window.addEventListener('unhandledrejection', onUnhandledRejection);
|
|
187
|
+
}
|
|
188
|
+
connect();
|
|
180
189
|
}
|
|
181
|
-
|
|
182
|
-
if (RSBUILD_DEV_LIVE_RELOAD) window.location.reload();
|
|
183
|
-
}
|
|
184
|
-
if (RSBUILD_DEV_BROWSER_LOGS && 'undefined' != typeof window) {
|
|
185
|
-
window.addEventListener('error', ({ message, error })=>{
|
|
186
|
-
sendError(message, error instanceof Error ? error.stack : void 0);
|
|
187
|
-
});
|
|
188
|
-
window.addEventListener('unhandledrejection', onUnhandledRejection);
|
|
189
|
-
}
|
|
190
|
-
connect();
|
|
191
|
-
export { registerOverlay };
|
|
190
|
+
export { init, registerOverlay };
|
package/dist/index.cjs
CHANGED
|
@@ -1712,7 +1712,7 @@ __webpack_require__.m = __webpack_modules__, __webpack_require__.n = (module)=>{
|
|
|
1712
1712
|
var __webpack_exports__ = {};
|
|
1713
1713
|
for(var __webpack_i__ in (()=>{
|
|
1714
1714
|
"use strict";
|
|
1715
|
-
let swcHelpersPath, pluginHelper_htmlPlugin, cssExtractPlugin
|
|
1715
|
+
let swcHelpersPath, pluginHelper_htmlPlugin, cssExtractPlugin;
|
|
1716
1716
|
__webpack_require__.r(__webpack_exports__), __webpack_require__.d(__webpack_exports__, {
|
|
1717
1717
|
PLUGIN_SWC_NAME: ()=>PLUGIN_SWC_NAME,
|
|
1718
1718
|
ensureAssetPrefix: ()=>ensureAssetPrefix,
|
|
@@ -2894,7 +2894,7 @@ ${section.body}` : section.body).join("\n\n"));
|
|
|
2894
2894
|
falsy
|
|
2895
2895
|
];
|
|
2896
2896
|
}
|
|
2897
|
-
let upperFirst = (str)=>str ? str.charAt(0).toUpperCase() + str.slice(1) : '', createVirtualModule = (content)=>`data:text/javascript,${content}`;
|
|
2897
|
+
let upperFirst = (str)=>str ? str.charAt(0).toUpperCase() + str.slice(1) : '', createVirtualModule = (content)=>`data:text/javascript,${encodeURIComponent(content)}`;
|
|
2898
2898
|
function isWebTarget(target) {
|
|
2899
2899
|
let targets = helpers_castArray(target);
|
|
2900
2900
|
return targets.includes('web') || targets.includes('web-worker');
|
|
@@ -4230,7 +4230,7 @@ ${section.body}` : section.body).join("\n\n"));
|
|
|
4230
4230
|
async function createContext(options, userConfig) {
|
|
4231
4231
|
let { cwd } = options, rootPath = userConfig.root ? ensureAbsolutePath(cwd, userConfig.root) : cwd, rsbuildConfig = await withDefaultConfig(rootPath, userConfig), cachePath = (0, external_node_path_.join)(rootPath, 'node_modules', '.cache'), specifiedEnvironments = options.environment && options.environment.length > 0 ? options.environment : void 0, bundlerType = userConfig.provider ? 'webpack' : 'rspack';
|
|
4232
4232
|
return {
|
|
4233
|
-
version: "1.6.
|
|
4233
|
+
version: "1.6.10",
|
|
4234
4234
|
rootPath,
|
|
4235
4235
|
distPath: '',
|
|
4236
4236
|
cachePath,
|
|
@@ -4696,11 +4696,12 @@ ${section.body}` : section.body).join("\n\n"));
|
|
|
4696
4696
|
let normalizedConfig = await initRsbuildConfig({
|
|
4697
4697
|
context,
|
|
4698
4698
|
pluginManager
|
|
4699
|
-
}), rspackConfigs =
|
|
4700
|
-
|
|
4701
|
-
|
|
4702
|
-
|
|
4703
|
-
|
|
4699
|
+
}), rspackConfigs = [];
|
|
4700
|
+
for (let [environmentName, config] of Object.entries(normalizedConfig.environments))rspackConfigs.push(await generateRspackConfig({
|
|
4701
|
+
target: config.output.target,
|
|
4702
|
+
context,
|
|
4703
|
+
environmentName
|
|
4704
|
+
}));
|
|
4704
4705
|
if (isDebug()) {
|
|
4705
4706
|
let inspect = async ()=>{
|
|
4706
4707
|
await inspectConfig_inspectConfig({
|
|
@@ -4748,9 +4749,9 @@ ${section.body}` : section.body).join("\n\n"));
|
|
|
4748
4749
|
}
|
|
4749
4750
|
let removedFiles = compiler.removedFiles ? Array.from(compiler.removedFiles) : null;
|
|
4750
4751
|
if (removedFiles?.length) {
|
|
4752
|
+
if (removedFiles.every((item)=>item.includes('virtual'))) return void logger.start(`building ${color.dim('virtual modules')}`);
|
|
4751
4753
|
let fileInfo = formatFileList(removedFiles, context.rootPath);
|
|
4752
|
-
logger.start(`building ${color.dim(`removed ${fileInfo}`)}`);
|
|
4753
|
-
return;
|
|
4754
|
+
return void logger.start(`building ${color.dim(`removed ${fileInfo}`)}`);
|
|
4754
4755
|
}
|
|
4755
4756
|
logger.start('build started...');
|
|
4756
4757
|
}
|
|
@@ -6545,30 +6546,29 @@ ${section.body}` : section.body).join("\n\n"));
|
|
|
6545
6546
|
}), compiler.__hasRsbuildAssetEmittedCallback = !0);
|
|
6546
6547
|
});
|
|
6547
6548
|
}
|
|
6548
|
-
let noop = ()=>{},
|
|
6549
|
-
function getClientPaths(devConfig) {
|
|
6550
|
-
let clientPaths = [];
|
|
6551
|
-
return (devConfig.hmr || devConfig.liveReload) && (hmrClientPath || (hmrClientPath = assets_middleware_require.resolve('@rsbuild/core/client/hmr')), clientPaths.push(hmrClientPath), devConfig.client?.overlay && (overlayClientPath || (overlayClientPath = assets_middleware_require.resolve('@rsbuild/core/client/overlay')), clientPaths.push(overlayClientPath))), clientPaths;
|
|
6552
|
-
}
|
|
6553
|
-
let isTsError = (error)=>'message' in error && error.stack?.includes('ts-checker-rspack-plugin');
|
|
6549
|
+
let noop = ()=>{}, isTsError = (error)=>'message' in error && error.stack?.includes('ts-checker-rspack-plugin');
|
|
6554
6550
|
function applyHMREntry({ config, compiler, token, resolvedHost, resolvedPort }) {
|
|
6555
6551
|
if (!((compiler)=>{
|
|
6556
6552
|
let { target } = compiler.options;
|
|
6557
6553
|
return !!target && (Array.isArray(target) ? target.includes('web') : 'web' === target);
|
|
6558
|
-
})(compiler)) return;
|
|
6559
|
-
let clientPaths = getClientPaths(config.dev);
|
|
6560
|
-
if (!clientPaths.length) return;
|
|
6554
|
+
})(compiler) || !config.dev.hmr && !config.dev.liveReload) return;
|
|
6561
6555
|
let clientConfig = {
|
|
6562
6556
|
...config.dev.client
|
|
6563
6557
|
};
|
|
6564
|
-
|
|
6565
|
-
|
|
6566
|
-
|
|
6567
|
-
|
|
6568
|
-
|
|
6569
|
-
|
|
6570
|
-
|
|
6571
|
-
|
|
6558
|
+
'<port>' === clientConfig.port && (clientConfig.port = resolvedPort);
|
|
6559
|
+
let hmrEntry = `import { init } from '@rsbuild/core/client/hmr';
|
|
6560
|
+
${config.dev.client.overlay ? "import '@rsbuild/core/client/overlay';" : ''}
|
|
6561
|
+
|
|
6562
|
+
init({
|
|
6563
|
+
token: '${token}',
|
|
6564
|
+
config: ${JSON.stringify(clientConfig)},
|
|
6565
|
+
serverHost: ${JSON.stringify(resolvedHost)},
|
|
6566
|
+
serverPort: ${resolvedPort},
|
|
6567
|
+
liveReload: ${config.dev.liveReload},
|
|
6568
|
+
browserLogs: ${!!config.dev.browserLogs}
|
|
6569
|
+
});
|
|
6570
|
+
`;
|
|
6571
|
+
new compiler.webpack.EntryPlugin(compiler.context, createVirtualModule(hmrEntry), {
|
|
6572
6572
|
name: void 0
|
|
6573
6573
|
}).apply(compiler);
|
|
6574
6574
|
}
|
|
@@ -6841,13 +6841,18 @@ ${section.body}` : section.body).join("\n\n"));
|
|
|
6841
6841
|
return ansiCodes.length > 0 && (ret += Array(ansiCodes.length + 1).join('</span>')), ret;
|
|
6842
6842
|
}
|
|
6843
6843
|
function convertLinksInHtml(text, root) {
|
|
6844
|
-
let
|
|
6844
|
+
let PATH_RE = /(?:\.\.?[/\\]|(file:\/\/\/)?[a-zA-Z]:\\|(file:\/\/)?\/)[^:]*:\d+:\d+/g, URL_RE = /(https?:\/\/(?:[\w-]+\.)+[a-z0-9](?:[\w-.~:/?#[\]@!$&'*+,;=])*)/gi, NODE_INTERNAL_RE = /node:internal[/\\]/, FILE_URI_WINDOWS_RE = /^file:\/\/\/([A-Za-z]:)/, FILE_URI_UNIX_RE = /^file:\/\//;
|
|
6845
6845
|
return text.split('\n').map((line)=>{
|
|
6846
|
-
|
|
6847
|
-
|
|
6846
|
+
if (NODE_INTERNAL_RE.test(line)) return line;
|
|
6847
|
+
let replacedLine = line.replace(PATH_RE, (file)=>{
|
|
6848
|
+
let hasClosingSpan = (file = ((file)=>{
|
|
6849
|
+
if (!file.startsWith('file://')) return file;
|
|
6850
|
+
let windows = file.replace(FILE_URI_WINDOWS_RE, '$1');
|
|
6851
|
+
return windows !== file ? windows : file.replace(FILE_URI_UNIX_RE, '');
|
|
6852
|
+
})(file)).includes('</span>') && !file.includes('<span'), filePath = hasClosingSpan ? file.replace('</span>', '') : file, isAbsolute = external_node_path_default().isAbsolute(filePath), absolutePath = root && !isAbsolute ? external_node_path_default().join(root, filePath) : filePath, relativePath = root && isAbsolute ? toRelativePath(root, filePath) : filePath;
|
|
6848
6853
|
return `<a class="file-link" data-file="${absolutePath}">${relativePath}</a>${hasClosingSpan ? '</span>' : ''}`;
|
|
6849
6854
|
});
|
|
6850
|
-
return replacedLine = replacedLine.replace(
|
|
6855
|
+
return replacedLine = replacedLine.replace(URL_RE, (url)=>`<a class="url-link" href="${url}" target="_blank" rel="noopener noreferrer">${url}</a>`);
|
|
6851
6856
|
}).join('\n');
|
|
6852
6857
|
}
|
|
6853
6858
|
function genOverlayHTML(errors, root) {
|
|
@@ -6896,7 +6901,8 @@ ${section.body}` : section.body).join("\n\n"));
|
|
|
6896
6901
|
margin: 0;
|
|
6897
6902
|
font-size: 14px;
|
|
6898
6903
|
font-family: inherit;
|
|
6899
|
-
|
|
6904
|
+
white-space: pre-wrap;
|
|
6905
|
+
word-break: break-all;
|
|
6900
6906
|
scrollbar-width: none;
|
|
6901
6907
|
}
|
|
6902
6908
|
.content::-webkit-scrollbar {
|
|
@@ -7264,7 +7270,10 @@ ${section.body}` : section.body).join("\n\n"));
|
|
|
7264
7270
|
}
|
|
7265
7271
|
};
|
|
7266
7272
|
res.writeHead = (status, reason, headers)=>{
|
|
7267
|
-
if (
|
|
7273
|
+
if ('string' == typeof reason) {
|
|
7274
|
+
if (headers) for (let [key, value] of Object.entries(headers))res.setHeader(key, value);
|
|
7275
|
+
res.statusMessage = reason;
|
|
7276
|
+
} else if (reason) for (let [key, value] of Object.entries(reason))void 0 !== value && res.setHeader(key, value);
|
|
7268
7277
|
return writeHeadStatus = status, res;
|
|
7269
7278
|
}, res.write = (...args)=>(start(), gzip ? gzip.write(...args) : write.apply(res, args)), res.end = (...args)=>(start(), gzip ? gzip.end(...args) : end.apply(res, args)), res.on = (type, listener)=>(started ? gzip && 'drain' === type ? gzip.on(type, listener) : on(type, listener) : listeners.push([
|
|
7270
7279
|
type,
|
|
@@ -7721,7 +7730,7 @@ ${section.body}` : section.body).join("\n\n"));
|
|
|
7721
7730
|
type
|
|
7722
7731
|
};
|
|
7723
7732
|
}
|
|
7724
|
-
let GLOB_REGEX = /[*?{}[\]()
|
|
7733
|
+
let GLOB_REGEX = /[*?{}[\]()!+|]/;
|
|
7725
7734
|
async function createChokidar(pathOrGlobs, root, options) {
|
|
7726
7735
|
let chokidar = requireCompiledPackage('chokidar'), watchFiles = new Set(), globPatterns = pathOrGlobs.filter((pathOrGlob)=>{
|
|
7727
7736
|
let str;
|
|
@@ -9856,7 +9865,7 @@ try {
|
|
|
9856
9865
|
};
|
|
9857
9866
|
function setupCommands() {
|
|
9858
9867
|
let cli = ((name = "")=>new CAC(name))('rsbuild');
|
|
9859
|
-
cli.version("1.6.
|
|
9868
|
+
cli.version("1.6.10"), cli.option('--base <base>', 'Set the base path of the server').option('-c, --config <config>', 'Set the configuration file (relative or absolute path)').option('--config-loader <loader>', 'Set the config file loader (auto | jiti | native)', {
|
|
9860
9869
|
default: 'auto'
|
|
9861
9870
|
}).option('--env-dir <dir>', 'Set the directory for loading `.env` files').option('--env-mode <mode>', 'Set the env mode to load the `.env.[mode]` file').option('--environment <name>', 'Set the environment name(s) to build', {
|
|
9862
9871
|
type: [
|
|
@@ -9925,7 +9934,7 @@ try {
|
|
|
9925
9934
|
}
|
|
9926
9935
|
function showGreeting() {
|
|
9927
9936
|
let { npm_execpath, npm_lifecycle_event, NODE_RUN_SCRIPT_NAME } = process.env, isBun = npm_execpath?.includes('.bun');
|
|
9928
|
-
logger.greet(`${'npx' === npm_lifecycle_event || isBun || NODE_RUN_SCRIPT_NAME ? '\n' : ''}Rsbuild v1.6.
|
|
9937
|
+
logger.greet(`${'npx' === npm_lifecycle_event || isBun || NODE_RUN_SCRIPT_NAME ? '\n' : ''}Rsbuild v1.6.10\n`);
|
|
9929
9938
|
}
|
|
9930
9939
|
function setupLogLevel() {
|
|
9931
9940
|
let logLevelIndex = process.argv.findIndex((item)=>'--log-level' === item || '--logLevel' === item);
|
|
@@ -9946,7 +9955,7 @@ try {
|
|
|
9946
9955
|
logger.error('Failed to start Rsbuild CLI.'), logger.error(err);
|
|
9947
9956
|
}
|
|
9948
9957
|
}
|
|
9949
|
-
let src_version = "1.6.
|
|
9958
|
+
let src_version = "1.6.10";
|
|
9950
9959
|
})(), exports.PLUGIN_CSS_NAME = __webpack_exports__.PLUGIN_CSS_NAME, exports.PLUGIN_SWC_NAME = __webpack_exports__.PLUGIN_SWC_NAME, exports.createRsbuild = __webpack_exports__.createRsbuild, exports.defaultAllowedOrigins = __webpack_exports__.defaultAllowedOrigins, exports.defineConfig = __webpack_exports__.defineConfig, exports.ensureAssetPrefix = __webpack_exports__.ensureAssetPrefix, exports.loadConfig = __webpack_exports__.loadConfig, exports.loadEnv = __webpack_exports__.loadEnv, exports.logger = __webpack_exports__.logger, exports.mergeRsbuildConfig = __webpack_exports__.mergeRsbuildConfig, exports.rspack = __webpack_exports__.rspack, exports.runCLI = __webpack_exports__.runCLI, exports.version = __webpack_exports__.version, __webpack_exports__)-1 === [
|
|
9951
9960
|
"PLUGIN_CSS_NAME",
|
|
9952
9961
|
"PLUGIN_SWC_NAME",
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { PLUGIN_CSS_NAME, PLUGIN_SWC_NAME, createRsbuild, defaultAllowedOrigins, defineConfig, ensureAssetPrefix, loadConfig, loadEnv, logger, mergeRsbuildConfig, rspack, runCLI, version } from "./
|
|
1
|
+
export { PLUGIN_CSS_NAME, PLUGIN_SWC_NAME, createRsbuild, defaultAllowedOrigins, defineConfig, ensureAssetPrefix, loadConfig, loadEnv, logger, mergeRsbuildConfig, rspack, runCLI, version } from "./131.js";
|
package/dist/transformLoader.mjs
CHANGED
|
@@ -1,36 +1 @@
|
|
|
1
|
-
|
|
2
|
-
let transformLoader = async function transform(source, map) {
|
|
3
|
-
let callback = this.async(), bypass = ()=>{
|
|
4
|
-
callback(null, source, map);
|
|
5
|
-
}, { id: transformId, getEnvironment } = this.getOptions();
|
|
6
|
-
if (!transformId) return void bypass();
|
|
7
|
-
let transform = this._compiler?.__rsbuildTransformer?.[transformId];
|
|
8
|
-
if (!transform) return void bypass();
|
|
9
|
-
try {
|
|
10
|
-
var generatedSourceMap;
|
|
11
|
-
let result = await transform({
|
|
12
|
-
code: source,
|
|
13
|
-
context: this.context,
|
|
14
|
-
resource: this.resource,
|
|
15
|
-
resourcePath: this.resourcePath,
|
|
16
|
-
resourceQuery: this.resourceQuery,
|
|
17
|
-
environment: getEnvironment(),
|
|
18
|
-
addDependency: this.addDependency.bind(this),
|
|
19
|
-
addMissingDependency: this.addMissingDependency.bind(this),
|
|
20
|
-
addContextDependency: this.addContextDependency.bind(this),
|
|
21
|
-
emitFile: this.emitFile.bind(this),
|
|
22
|
-
importModule: this.importModule.bind(this),
|
|
23
|
-
resolve: this.resolve.bind(this)
|
|
24
|
-
});
|
|
25
|
-
if (null == result) return void bypass();
|
|
26
|
-
if ('string' == typeof result || Buffer.isBuffer(result)) return void callback(null, result, map);
|
|
27
|
-
let mergedMap = (generatedSourceMap = result.map, map && generatedSourceMap ? requireCompiledPackage('@jridgewell/remapping')([
|
|
28
|
-
generatedSourceMap,
|
|
29
|
-
map
|
|
30
|
-
], ()=>null) : generatedSourceMap ?? map);
|
|
31
|
-
callback(null, result.code, mergedMap);
|
|
32
|
-
} catch (error) {
|
|
33
|
-
error instanceof Error ? callback(error) : callback(Error(String(error)));
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
export default transformLoader;
|
|
1
|
+
export { default } from "./136.mjs";
|
|
@@ -1,37 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
let
|
|
3
|
-
|
|
4
|
-
callback(null, source, map);
|
|
5
|
-
}, { id: transformId, getEnvironment } = this.getOptions();
|
|
6
|
-
if (!transformId) return void bypass();
|
|
7
|
-
let transform = this._compiler?.__rsbuildTransformer?.[transformId];
|
|
8
|
-
if (!transform) return void bypass();
|
|
9
|
-
try {
|
|
10
|
-
var generatedSourceMap;
|
|
11
|
-
let result = await transform({
|
|
12
|
-
code: source,
|
|
13
|
-
context: this.context,
|
|
14
|
-
resource: this.resource,
|
|
15
|
-
resourcePath: this.resourcePath,
|
|
16
|
-
resourceQuery: this.resourceQuery,
|
|
17
|
-
environment: getEnvironment(),
|
|
18
|
-
addDependency: this.addDependency.bind(this),
|
|
19
|
-
addMissingDependency: this.addMissingDependency.bind(this),
|
|
20
|
-
addContextDependency: this.addContextDependency.bind(this),
|
|
21
|
-
emitFile: this.emitFile.bind(this),
|
|
22
|
-
importModule: this.importModule.bind(this),
|
|
23
|
-
resolve: this.resolve.bind(this)
|
|
24
|
-
});
|
|
25
|
-
if (null == result) return void bypass();
|
|
26
|
-
if ('string' == typeof result || Buffer.isBuffer(result)) return void callback(null, result, map);
|
|
27
|
-
let mergedMap = (generatedSourceMap = result.map, map && generatedSourceMap ? requireCompiledPackage('@jridgewell/remapping')([
|
|
28
|
-
generatedSourceMap,
|
|
29
|
-
map
|
|
30
|
-
], ()=>null) : generatedSourceMap ?? map);
|
|
31
|
-
callback(null, result.code, mergedMap);
|
|
32
|
-
} catch (error) {
|
|
33
|
-
error instanceof Error ? callback(error) : callback(Error(String(error)));
|
|
34
|
-
}
|
|
35
|
-
}, raw = !0;
|
|
36
|
-
export default transformLoader;
|
|
1
|
+
import { default as loader_transformLoader } from "./136.mjs";
|
|
2
|
+
let raw = !0;
|
|
3
|
+
export default loader_transformLoader;
|
|
37
4
|
export { raw };
|
|
@@ -1 +1,10 @@
|
|
|
1
|
+
import type { NormalizedClientConfig } from '../types';
|
|
1
2
|
export declare const registerOverlay: (createFn: (html: string) => void, clearFn: () => void) => void;
|
|
3
|
+
export declare function init({ token, config, serverHost, serverPort, liveReload, browserLogs, }: {
|
|
4
|
+
token: string;
|
|
5
|
+
config: NormalizedClientConfig;
|
|
6
|
+
serverHost: string;
|
|
7
|
+
serverPort: number;
|
|
8
|
+
liveReload: boolean;
|
|
9
|
+
browserLogs: boolean;
|
|
10
|
+
}): void;
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The assets middleware is modified based on
|
|
3
|
+
* https://github.com/webpack/webpack-dev-middleware
|
|
4
|
+
*
|
|
5
|
+
* MIT Licensed
|
|
6
|
+
* Copyright JS Foundation and other contributors
|
|
7
|
+
* https://github.com/webpack/webpack-dev-middleware/blob/master/LICENSE
|
|
8
|
+
*/
|
|
1
9
|
import type { Compiler, MultiCompiler } from '@rspack/core';
|
|
2
10
|
import type { InternalContext, NormalizedConfig, RequestHandler } from '../../types';
|
|
3
11
|
import type { SocketServer } from '../socketServer';
|