@rsbuild/core 0.5.7 → 0.5.9

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.
@@ -39,7 +39,7 @@ const applyServerOptions = (command) => {
39
39
  command.option("-o --open [url]", "open the page in browser on startup").option("--port <port>", "specify a port number for server to listen").option("--host <host>", "specify the host that the server listens to");
40
40
  };
41
41
  function runCli() {
42
- import_commander.program.name("rsbuild").usage("<command> [options]").version("0.5.7");
42
+ import_commander.program.name("rsbuild").usage("<command> [options]").version("0.5.9");
43
43
  const devCommand = import_commander.program.command("dev");
44
44
  const buildCommand = import_commander.program.command("build");
45
45
  const previewCommand = import_commander.program.command("preview");
@@ -34,7 +34,7 @@ function prepareCli() {
34
34
  if (!npm_execpath || npm_execpath.includes("npx-cli.js") || npm_execpath.includes(".bun")) {
35
35
  console.log();
36
36
  }
37
- import_rslog.logger.greet(` ${`Rsbuild v${"0.5.7"}`}
37
+ import_rslog.logger.greet(` ${`Rsbuild v${"0.5.9"}`}
38
38
  `);
39
39
  }
40
40
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.d.ts CHANGED
@@ -11,4 +11,4 @@ export { mergeRsbuildConfig } from './mergeConfig';
11
11
  export { PLUGIN_SWC_NAME, PLUGIN_CSS_NAME, PLUGIN_SASS_NAME, PLUGIN_LESS_NAME, PLUGIN_STYLUS_NAME, } from './constants';
12
12
  export type { Rspack } from './provider';
13
13
  export type { RsbuildConfig, DevConfig, HtmlConfig, ToolsConfig, SourceConfig, ServerConfig, OutputConfig, SecurityConfig, PerformanceConfig, ModuleFederationConfig, NormalizedConfig, NormalizedDevConfig, NormalizedHtmlConfig, NormalizedToolsConfig, NormalizedSourceConfig, NormalizedServerConfig, NormalizedOutputConfig, NormalizedSecurityConfig, NormalizedPerformanceConfig, NormalizedModuleFederationConfig, RsbuildPlugin, RsbuildPlugins, RsbuildPluginAPI, } from './types';
14
- export type { RsbuildMode, RsbuildEntry, RsbuildTarget, RsbuildContext, RsbuildInstance, CreateRsbuildOptions, InspectConfigOptions, OnExitFn, OnAfterBuildFn, OnAfterCreateCompilerFn, OnAfterStartDevServerFn, OnAfterStartProdServerFn, OnBeforeBuildFn, OnBeforeStartDevServerFn, OnBeforeStartProdServerFn, OnBeforeCreateCompilerFn, OnCloseDevServerFn, OnDevCompileDoneFn, ModifyRsbuildConfigFn, } from '@rsbuild/shared';
14
+ export type { RsbuildMode, RsbuildEntry, RsbuildTarget, RsbuildContext, RsbuildInstance, CreateRsbuildOptions, InspectConfigOptions, OnExitFn, OnAfterBuildFn, OnAfterCreateCompilerFn, OnAfterStartDevServerFn, OnAfterStartProdServerFn, OnBeforeBuildFn, OnBeforeStartDevServerFn, OnBeforeStartProdServerFn, OnBeforeCreateCompilerFn, OnCloseDevServerFn, OnDevCompileDoneFn, ModifyBundlerChainFn, ModifyRspackConfigFn, ModifyRsbuildConfigFn, TransformFn, TransformHandler, } from '@rsbuild/shared';
package/dist/index.js CHANGED
@@ -38,7 +38,7 @@ var import_config = require("./config");
38
38
  var import_shared = require("@rsbuild/shared");
39
39
  var import_mergeConfig = require("./mergeConfig");
40
40
  var import_constants = require("./constants");
41
- const version = "0.5.7";
41
+ const version = "0.5.9";
42
42
  // Annotate the CommonJS export names for ESM import in node:
43
43
  0 && (module.exports = {
44
44
  PLUGIN_CSS_NAME,
@@ -31,27 +31,26 @@ __export(networkPerformance_exports, {
31
31
  pluginNetworkPerformance: () => pluginNetworkPerformance
32
32
  });
33
33
  module.exports = __toCommonJS(networkPerformance_exports);
34
+ var import_shared = require("@rsbuild/shared");
34
35
  const pluginNetworkPerformance = () => ({
35
36
  name: "rsbuild:network-performance",
36
37
  setup(api) {
37
- api.modifyBundlerChain(
38
- async (chain, { CHAIN_ID, isServer, isWebWorker, isServiceWorker }) => {
39
- const config = api.getNormalizedConfig();
40
- const {
41
- performance: { dnsPrefetch, preconnect }
42
- } = config;
43
- if (isServer || isWebWorker || isServiceWorker) {
44
- return;
45
- }
46
- const { HtmlNetworkPerformancePlugin } = await Promise.resolve().then(() => __toESM(require("../rspack/HtmlNetworkPerformancePlugin")));
47
- if (dnsPrefetch) {
48
- chain.plugin(CHAIN_ID.PLUGIN.HTML_DNS_PREFETCH).use(HtmlNetworkPerformancePlugin, [dnsPrefetch, "dnsPrefetch"]);
49
- }
50
- if (preconnect) {
51
- chain.plugin(CHAIN_ID.PLUGIN.HTML_PRECONNECT).use(HtmlNetworkPerformancePlugin, [preconnect, "preconnect"]);
52
- }
38
+ api.modifyBundlerChain(async (chain, { CHAIN_ID, target }) => {
39
+ const config = api.getNormalizedConfig();
40
+ const {
41
+ performance: { dnsPrefetch, preconnect }
42
+ } = config;
43
+ if ((0, import_shared.isHtmlDisabled)(config, target)) {
44
+ return;
53
45
  }
54
- );
46
+ const { HtmlNetworkPerformancePlugin } = await Promise.resolve().then(() => __toESM(require("../rspack/HtmlNetworkPerformancePlugin")));
47
+ if (dnsPrefetch) {
48
+ chain.plugin(CHAIN_ID.PLUGIN.HTML_DNS_PREFETCH).use(HtmlNetworkPerformancePlugin, [dnsPrefetch, "dnsPrefetch"]);
49
+ }
50
+ if (preconnect) {
51
+ chain.plugin(CHAIN_ID.PLUGIN.HTML_PRECONNECT).use(HtmlNetworkPerformancePlugin, [preconnect, "preconnect"]);
52
+ }
53
+ });
55
54
  }
56
55
  });
57
56
  // Annotate the CommonJS export names for ESM import in node:
@@ -44,7 +44,7 @@ async function createContextByConfig(options, bundlerType, config = {}) {
44
44
  const context = {
45
45
  entry: (0, import_entry.getEntryObject)(config, "web"),
46
46
  targets: config.output?.targets || [],
47
- version: "0.5.7",
47
+ version: "0.5.9",
48
48
  rootPath,
49
49
  distPath,
50
50
  cachePath,
@@ -37,7 +37,8 @@ async function transform(source, map) {
37
37
  resource: this.resource,
38
38
  resourcePath: this.resourcePath,
39
39
  resourceQuery: this.resourceQuery,
40
- addDependency: this.addDependency
40
+ addDependency: this.addDependency,
41
+ emitFile: this.emitFile
41
42
  });
42
43
  if (result === null || result === void 0) {
43
44
  return bypass();
@@ -2,10 +2,11 @@
2
2
  /// <reference types="node" />
3
3
  import type { IncomingMessage } from 'node:http';
4
4
  import type { Socket } from 'node:net';
5
- import type { DevMiddlewaresConfig, DevMiddlewareAPI, DevMiddleware as CustomDevMiddleware } from '@rsbuild/shared';
5
+ import type { DevMiddlewareAPI, ServerConfig, DevConfig, DevMiddleware as CustomDevMiddleware } from '@rsbuild/shared';
6
6
  type Options = {
7
7
  publicPaths: string[];
8
- dev: DevMiddlewaresConfig;
8
+ dev: DevConfig;
9
+ server: ServerConfig;
9
10
  devMiddleware: CustomDevMiddleware;
10
11
  };
11
12
  /**
@@ -16,10 +17,11 @@ type Options = {
16
17
  export declare class CompilerDevMiddleware {
17
18
  middleware: DevMiddlewareAPI;
18
19
  private devOptions;
20
+ private serverOptions;
19
21
  private devMiddleware;
20
22
  private publicPaths;
21
23
  private socketServer;
22
- constructor({ dev, devMiddleware, publicPaths }: Options);
24
+ constructor({ dev, server, devMiddleware, publicPaths }: Options);
23
25
  init(): void;
24
26
  upgrade(req: IncomingMessage, sock: Socket, head: any): void;
25
27
  close(): void;
@@ -47,13 +47,15 @@ function getHMRClientPath(client = {}) {
47
47
  return clientEntry;
48
48
  }
49
49
  class CompilerDevMiddleware {
50
- constructor({ dev, devMiddleware, publicPaths }) {
50
+ constructor({ dev, server, devMiddleware, publicPaths }) {
51
51
  __publicField(this, "middleware");
52
52
  __publicField(this, "devOptions");
53
+ __publicField(this, "serverOptions");
53
54
  __publicField(this, "devMiddleware");
54
55
  __publicField(this, "publicPaths");
55
56
  __publicField(this, "socketServer");
56
57
  this.devOptions = dev;
58
+ this.serverOptions = server;
57
59
  this.publicPaths = publicPaths;
58
60
  this.socketServer = new import_socketServer.SocketServer(dev);
59
61
  this.devMiddleware = devMiddleware;
@@ -76,7 +78,7 @@ class CompilerDevMiddleware {
76
78
  this.socketServer.sockWrite(type, data);
77
79
  }
78
80
  setupDevMiddleware(devMiddleware, publicPaths) {
79
- const { devOptions } = this;
81
+ const { devOptions, serverOptions } = this;
80
82
  const callbacks = {
81
83
  onInvalid: () => {
82
84
  this.socketServer.sockWrite("invalid");
@@ -87,7 +89,7 @@ class CompilerDevMiddleware {
87
89
  };
88
90
  const injectClient = this.devOptions.hmr || this.devOptions.liveReload;
89
91
  const middleware = devMiddleware({
90
- headers: devOptions.headers,
92
+ headers: serverOptions.headers,
91
93
  publicPath: "/",
92
94
  stats: false,
93
95
  callbacks,
@@ -48,7 +48,7 @@ async function createDevServer(options, createDevMiddleware, {
48
48
  }
49
49
  (0, import_shared.debug)("create dev server");
50
50
  const rsbuildConfig = options.context.config;
51
- const { devServerConfig, port, host, https } = await (0, import_helper.getDevOptions)({
51
+ const { devConfig, serverConfig, port, host, https } = await (0, import_helper.getDevOptions)({
52
52
  rsbuildConfig,
53
53
  getPortSilently
54
54
  });
@@ -70,7 +70,8 @@ async function createDevServer(options, createDevMiddleware, {
70
70
  const { CompilerDevMiddleware } = await Promise.resolve().then(() => __toESM(require("./compilerDevMiddleware")));
71
71
  const publicPaths = (0, import_shared.isMultiCompiler)(compiler) ? compiler.compilers.map(import_shared.getPublicPathFromCompiler) : [(0, import_shared.getPublicPathFromCompiler)(compiler)];
72
72
  const compilerDevMiddleware = new CompilerDevMiddleware({
73
- dev: devServerConfig,
73
+ dev: devConfig,
74
+ server: serverConfig,
74
75
  publicPaths,
75
76
  devMiddleware
76
77
  });
@@ -92,7 +93,7 @@ async function createDevServer(options, createDevMiddleware, {
92
93
  port,
93
94
  routes,
94
95
  protocol,
95
- printUrls: devServerConfig.printUrls
96
+ printUrls: serverConfig.printUrls
96
97
  });
97
98
  });
98
99
  } else {
@@ -101,14 +102,15 @@ async function createDevServer(options, createDevMiddleware, {
101
102
  port,
102
103
  routes,
103
104
  protocol,
104
- printUrls: devServerConfig.printUrls
105
+ printUrls: serverConfig.printUrls
105
106
  });
106
107
  }
107
108
  const compileMiddlewareAPI = runCompile ? await startCompile() : void 0;
108
109
  const devMiddlewares = await (0, import_getDevMiddlewares.getMiddlewares)({
109
110
  pwd: options.context.rootPath,
110
111
  compileMiddlewareAPI,
111
- dev: devServerConfig,
112
+ dev: devConfig,
113
+ server: serverConfig,
112
114
  output: {
113
115
  distPath: rsbuildConfig.output?.distPath?.root || import_shared.ROOT_DIST_DIR
114
116
  }
@@ -126,7 +128,7 @@ async function createDevServer(options, createDevMiddleware, {
126
128
  middlewares,
127
129
  listen: async () => {
128
130
  const httpServer = await (0, import_httpServer.createHttpServer)({
129
- https: devServerConfig.https,
131
+ https: serverConfig.https,
130
132
  middlewares
131
133
  });
132
134
  (0, import_shared.debug)("listen dev server");
@@ -1,7 +1,8 @@
1
- import type { Middlewares, UpgradeEvent, DevMiddlewaresConfig, CompileMiddlewareAPI } from '@rsbuild/shared';
1
+ import type { Middlewares, UpgradeEvent, ServerConfig, CompileMiddlewareAPI, DevConfig } from '@rsbuild/shared';
2
2
  export type RsbuildDevMiddlewareOptions = {
3
3
  pwd: string;
4
- dev: DevMiddlewaresConfig;
4
+ dev: DevConfig;
5
+ server: ServerConfig;
5
6
  compileMiddlewareAPI?: CompileMiddlewareAPI;
6
7
  output: {
7
8
  distPath: string;
@@ -55,13 +55,13 @@ const applySetupMiddlewares = (dev, compileMiddlewareAPI) => {
55
55
  };
56
56
  const applyDefaultMiddlewares = async ({
57
57
  middlewares,
58
- dev,
58
+ server,
59
59
  compileMiddlewareAPI,
60
60
  output,
61
61
  pwd
62
62
  }) => {
63
63
  const upgradeEvents = [];
64
- if (dev.compress) {
64
+ if (server.compress) {
65
65
  const { default: compression } = await Promise.resolve().then(() => __toESM(require("../../compiled/http-compression")));
66
66
  middlewares.push((req, res, next) => {
67
67
  compression({
@@ -76,7 +76,7 @@ const applyDefaultMiddlewares = async ({
76
76
  if (path?.includes("hot-update")) {
77
77
  res.setHeader("Access-Control-Allow-Credentials", "false");
78
78
  }
79
- const confHeaders = dev.headers;
79
+ const confHeaders = server.headers;
80
80
  if (confHeaders) {
81
81
  for (const [key, value] of Object.entries(confHeaders)) {
82
82
  res.setHeader(key, value);
@@ -84,10 +84,10 @@ const applyDefaultMiddlewares = async ({
84
84
  }
85
85
  next();
86
86
  });
87
- if (dev.proxy) {
87
+ if (server.proxy) {
88
88
  const { createProxyMiddleware } = await Promise.resolve().then(() => __toESM(require("./proxy")));
89
89
  const { middlewares: proxyMiddlewares, upgrade } = createProxyMiddleware(
90
- dev.proxy
90
+ server.proxy
91
91
  );
92
92
  upgradeEvents.push(upgrade);
93
93
  for (const middleware of proxyMiddlewares) {
@@ -110,9 +110,9 @@ const applyDefaultMiddlewares = async ({
110
110
  }
111
111
  });
112
112
  }
113
- if (dev.publicDir !== false && dev.publicDir?.name) {
113
+ if (server.publicDir !== false && server.publicDir?.name) {
114
114
  const { default: sirv } = await Promise.resolve().then(() => __toESM(require("../../compiled/sirv")));
115
- const { name } = dev.publicDir;
115
+ const { name } = server.publicDir;
116
116
  const publicDir = (0, import_node_path.isAbsolute)(name) ? name : (0, import_node_path.join)(pwd, name);
117
117
  const assetMiddleware = sirv(publicDir, {
118
118
  etag: true,
@@ -125,13 +125,13 @@ const applyDefaultMiddlewares = async ({
125
125
  (0, import_middlewares.getHtmlFallbackMiddleware)({
126
126
  distPath: (0, import_node_path.isAbsolute)(distPath) ? distPath : (0, import_node_path.join)(pwd, distPath),
127
127
  callback: compileMiddlewareAPI.middleware,
128
- htmlFallback: dev.htmlFallback
128
+ htmlFallback: server.htmlFallback
129
129
  })
130
130
  );
131
- if (dev.historyApiFallback) {
131
+ if (server.historyApiFallback) {
132
132
  const { default: connectHistoryApiFallback } = await Promise.resolve().then(() => __toESM(require("../../compiled/connect-history-api-fallback")));
133
133
  const historyApiFallbackMiddleware = connectHistoryApiFallback(
134
- dev.historyApiFallback === true ? {} : dev.historyApiFallback
134
+ server.historyApiFallback === true ? {} : server.historyApiFallback
135
135
  );
136
136
  middlewares.push(historyApiFallbackMiddleware);
137
137
  compileMiddlewareAPI?.middleware && middlewares.push(compileMiddlewareAPI.middleware);
@@ -159,6 +159,7 @@ const getMiddlewares = async (options) => {
159
159
  const { onUpgrade } = await applyDefaultMiddlewares({
160
160
  middlewares,
161
161
  dev: options.dev,
162
+ server: options.server,
162
163
  compileMiddlewareAPI,
163
164
  output: options.output,
164
165
  pwd: options.pwd
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import type { Routes, DevConfig, PrintUrls, RsbuildEntry, RsbuildConfig, OutputStructure } from '@rsbuild/shared';
3
2
  export declare const formatRoutes: (entry: RsbuildEntry, prefix: string | undefined, outputStructure: OutputStructure | undefined) => Routes;
4
3
  export declare function printServerURLs({ urls: originalUrls, port, routes, protocol, printUrls, }: {
@@ -46,37 +45,8 @@ export declare const getDevOptions: ({ rsbuildConfig, getPortSilently, }: {
46
45
  rsbuildConfig: RsbuildConfig;
47
46
  getPortSilently?: boolean | undefined;
48
47
  }) => Promise<{
49
- devServerConfig: {
50
- hmr?: boolean | undefined;
51
- liveReload?: boolean | undefined;
52
- startUrl?: string | boolean | string[] | undefined;
53
- beforeStartUrl?: import("@rsbuild/shared").ArrayOrNot<() => void | Promise<void>> | undefined;
54
- assetPrefix?: string | boolean | undefined;
55
- progressBar?: boolean | import("@rsbuild/shared").ProgressBarConfig | undefined;
56
- client?: {
57
- path?: string | undefined;
58
- port?: string | undefined;
59
- host?: string | undefined;
60
- protocol?: "ws" | "wss" | undefined;
61
- overlay?: boolean | undefined;
62
- } | undefined;
63
- setupMiddlewares?: ((middlewares: {
64
- unshift: (...handlers: import("@rsbuild/shared").RequestHandler[]) => void;
65
- push: (...handlers: import("@rsbuild/shared").RequestHandler[]) => void;
66
- }, server: import("@rsbuild/shared").ServerAPIs) => void)[] | undefined;
67
- writeToDisk?: boolean | ((filename: string) => boolean) | undefined;
68
- compress?: boolean | undefined;
69
- publicDir?: import("@rsbuild/shared").PublicDir | undefined;
70
- port?: number | undefined;
71
- https?: import("https").ServerOptions | undefined;
72
- host?: string | undefined;
73
- headers?: Record<string, string | string[]> | undefined;
74
- htmlFallback?: import("@rsbuild/shared").HtmlFallback | undefined;
75
- historyApiFallback?: boolean | import("@rsbuild/shared").HistoryApiFallbackOptions | undefined;
76
- proxy?: import("@rsbuild/shared").ProxyOptions | undefined;
77
- strictPort?: boolean | undefined;
78
- printUrls?: PrintUrls | undefined;
79
- };
48
+ devConfig: DevConfig;
49
+ serverConfig: import("@rsbuild/shared").ServerConfig;
80
50
  port: number;
81
51
  host: string;
82
52
  https: boolean;
@@ -215,10 +215,8 @@ const getDevOptions = async ({
215
215
  });
216
216
  const devConfig = mergeDevOptions({ rsbuildConfig, port });
217
217
  return {
218
- devServerConfig: {
219
- ...serverConfig,
220
- ...devConfig
221
- },
218
+ devConfig,
219
+ serverConfig,
222
220
  port,
223
221
  host,
224
222
  https
@@ -3,14 +3,14 @@
3
3
  import type { IncomingMessage } from 'node:http';
4
4
  import type { Socket } from 'node:net';
5
5
  import ws from '../../compiled/ws';
6
- import { type Stats, type DevMiddlewaresConfig } from '@rsbuild/shared';
6
+ import { type Stats, type DevConfig } from '@rsbuild/shared';
7
7
  export declare class SocketServer {
8
8
  private wsServer;
9
9
  private readonly sockets;
10
10
  private readonly options;
11
11
  private stats?;
12
12
  private timer;
13
- constructor(options: DevMiddlewaresConfig);
13
+ constructor(options: DevConfig);
14
14
  upgrade(req: IncomingMessage, sock: Socket, head: any): void;
15
15
  prepare(): void;
16
16
  updateStats(stats: Stats): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsbuild/core",
3
- "version": "0.5.7",
3
+ "version": "0.5.9",
4
4
  "description": "The Rspack-based build tool.",
5
5
  "homepage": "https://rsbuild.dev",
6
6
  "bugs": {
@@ -57,7 +57,7 @@
57
57
  "core-js": "~3.36.0",
58
58
  "html-webpack-plugin": "npm:html-rspack-plugin@5.6.2",
59
59
  "postcss": "^8.4.38",
60
- "@rsbuild/shared": "0.5.7"
60
+ "@rsbuild/shared": "0.5.9"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@types/node": "16.x",