@rsbuild/core 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/cli/commands.d.ts +1 -1
  2. package/dist/cli/commands.js +1 -1
  3. package/dist/cli/prepare.js +1 -1
  4. package/dist/createRsbuild.d.ts +8 -8
  5. package/dist/createRsbuild.js +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/plugins/html.d.ts +2 -2
  8. package/dist/plugins/html.js +5 -5
  9. package/dist/plugins/index.js +2 -1
  10. package/dist/plugins/inlineChunk.js +1 -1
  11. package/dist/plugins/networkPerformance.js +1 -1
  12. package/dist/plugins/preloadOrPrefetch.js +1 -1
  13. package/dist/plugins/server.d.ts +2 -0
  14. package/dist/plugins/server.js +56 -0
  15. package/dist/{rspack-provider → provider}/core/createContext.js +1 -1
  16. package/dist/{rspack-provider → provider}/core/initHooks.d.ts +7 -6
  17. package/dist/{rspack-provider → provider}/core/initHooks.js +4 -2
  18. package/dist/provider/core/initPlugins.d.ts +9 -0
  19. package/dist/{rspack-provider → provider}/core/initPlugins.js +5 -7
  20. package/dist/provider/index.d.ts +11 -0
  21. package/dist/{rspack-provider → provider}/index.js +22 -5
  22. package/dist/{rspack-provider → provider}/plugins/css.js +1 -1
  23. package/dist/provider/provider.d.ts +7 -0
  24. package/dist/{rspack-provider → provider}/shared.js +21 -2
  25. package/dist/server/devServer.js +12 -1
  26. package/dist/server/prodServer.js +2 -1
  27. package/dist/types.d.ts +3 -5
  28. package/package.json +5 -11
  29. package/dist/rspack-provider/core/initPlugins.d.ts +0 -9
  30. package/dist/rspack-provider/index.d.ts +0 -6
  31. package/dist/rspack-provider/provider.d.ts +0 -8
  32. /package/dist/{rspack-provider → provider}/config.d.ts +0 -0
  33. /package/dist/{rspack-provider → provider}/config.js +0 -0
  34. /package/dist/{rspack-provider → provider}/core/build.d.ts +0 -0
  35. /package/dist/{rspack-provider → provider}/core/build.js +0 -0
  36. /package/dist/{rspack-provider → provider}/core/createCompiler.d.ts +0 -0
  37. /package/dist/{rspack-provider → provider}/core/createCompiler.js +0 -0
  38. /package/dist/{rspack-provider → provider}/core/createContext.d.ts +0 -0
  39. /package/dist/{rspack-provider → provider}/core/devMiddleware.d.ts +0 -0
  40. /package/dist/{rspack-provider → provider}/core/devMiddleware.js +0 -0
  41. /package/dist/{rspack-provider → provider}/core/initConfigs.d.ts +0 -0
  42. /package/dist/{rspack-provider → provider}/core/initConfigs.js +0 -0
  43. /package/dist/{rspack-provider → provider}/core/inspectConfig.d.ts +0 -0
  44. /package/dist/{rspack-provider → provider}/core/inspectConfig.js +0 -0
  45. /package/dist/{rspack-provider → provider}/core/rspackConfig.d.ts +0 -0
  46. /package/dist/{rspack-provider → provider}/core/rspackConfig.js +0 -0
  47. /package/dist/{rspack-provider → provider}/css-modules-typescript-pre-loader/index.d.ts +0 -0
  48. /package/dist/{rspack-provider → provider}/css-modules-typescript-pre-loader/index.js +0 -0
  49. /package/dist/{rspack-provider → provider}/css-modules-typescript-pre-loader/postcss-icss-extract-plugin.d.ts +0 -0
  50. /package/dist/{rspack-provider → provider}/css-modules-typescript-pre-loader/postcss-icss-extract-plugin.js +0 -0
  51. /package/dist/{rspack-provider → provider}/plugins/basic.d.ts +0 -0
  52. /package/dist/{rspack-provider → provider}/plugins/basic.js +0 -0
  53. /package/dist/{rspack-provider → provider}/plugins/css.d.ts +0 -0
  54. /package/dist/{rspack-provider → provider}/plugins/hmr.d.ts +0 -0
  55. /package/dist/{rspack-provider → provider}/plugins/hmr.js +0 -0
  56. /package/dist/{rspack-provider → provider}/plugins/less.d.ts +0 -0
  57. /package/dist/{rspack-provider → provider}/plugins/less.js +0 -0
  58. /package/dist/{rspack-provider → provider}/plugins/minimize.d.ts +0 -0
  59. /package/dist/{rspack-provider → provider}/plugins/minimize.js +0 -0
  60. /package/dist/{rspack-provider → provider}/plugins/output.d.ts +0 -0
  61. /package/dist/{rspack-provider → provider}/plugins/output.js +0 -0
  62. /package/dist/{rspack-provider → provider}/plugins/progress.d.ts +0 -0
  63. /package/dist/{rspack-provider → provider}/plugins/progress.js +0 -0
  64. /package/dist/{rspack-provider → provider}/plugins/resolve.d.ts +0 -0
  65. /package/dist/{rspack-provider → provider}/plugins/resolve.js +0 -0
  66. /package/dist/{rspack-provider → provider}/plugins/rspackProfile.d.ts +0 -0
  67. /package/dist/{rspack-provider → provider}/plugins/rspackProfile.js +0 -0
  68. /package/dist/{rspack-provider → provider}/plugins/sass.d.ts +0 -0
  69. /package/dist/{rspack-provider → provider}/plugins/sass.js +0 -0
  70. /package/dist/{rspack-provider → provider}/plugins/swc.d.ts +0 -0
  71. /package/dist/{rspack-provider → provider}/plugins/swc.js +0 -0
  72. /package/dist/{rspack-provider → provider}/plugins/transition.d.ts +0 -0
  73. /package/dist/{rspack-provider → provider}/plugins/transition.js +0 -0
  74. /package/dist/{rspack-provider → provider}/provider.js +0 -0
  75. /package/dist/{rspack-provider → provider}/shared.d.ts +0 -0
  76. /package/dist/{rspack-plugins → rspack}/HtmlAppIconPlugin.d.ts +0 -0
  77. /package/dist/{rspack-plugins → rspack}/HtmlAppIconPlugin.js +0 -0
  78. /package/dist/{rspack-plugins → rspack}/HtmlBasicPlugin.d.ts +0 -0
  79. /package/dist/{rspack-plugins → rspack}/HtmlBasicPlugin.js +0 -0
  80. /package/dist/{rspack-plugins → rspack}/HtmlCrossOriginPlugin.d.ts +0 -0
  81. /package/dist/{rspack-plugins → rspack}/HtmlCrossOriginPlugin.js +0 -0
  82. /package/dist/{rspack-plugins → rspack}/HtmlNetworkPerformancePlugin.d.ts +0 -0
  83. /package/dist/{rspack-plugins → rspack}/HtmlNetworkPerformancePlugin.js +0 -0
  84. /package/dist/{rspack-plugins → rspack}/HtmlNoncePlugin.d.ts +0 -0
  85. /package/dist/{rspack-plugins → rspack}/HtmlNoncePlugin.js +0 -0
  86. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/helpers/determineAsValue.d.ts +0 -0
  87. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/helpers/determineAsValue.js +0 -0
  88. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/helpers/doesChunkBelongToHtml.d.ts +0 -0
  89. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/helpers/doesChunkBelongToHtml.js +0 -0
  90. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/helpers/extractChunks.d.ts +0 -0
  91. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/helpers/extractChunks.js +0 -0
  92. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/helpers/index.d.ts +0 -0
  93. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/helpers/index.js +0 -0
  94. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/helpers/type.d.ts +0 -0
  95. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/helpers/type.js +0 -0
  96. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/index.d.ts +0 -0
  97. /package/dist/{rspack-plugins → rspack}/HtmlPreloadOrPrefetchPlugin/index.js +0 -0
  98. /package/dist/{rspack-plugins → rspack}/HtmlTagsPlugin.d.ts +0 -0
  99. /package/dist/{rspack-plugins → rspack}/HtmlTagsPlugin.js +0 -0
  100. /package/dist/{rspack-plugins → rspack}/InlineChunkHtmlPlugin.d.ts +0 -0
  101. /package/dist/{rspack-plugins → rspack}/InlineChunkHtmlPlugin.js +0 -0
  102. /package/dist/{rspack-plugins → rspack}/RemoveCssSourcemapPlugin.d.ts +0 -0
  103. /package/dist/{rspack-plugins → rspack}/RemoveCssSourcemapPlugin.js +0 -0
@@ -21,5 +21,5 @@ export declare function init({
21
21
  }: {
22
22
  cliOptions?: CommonOptions;
23
23
  isRestart?: boolean;
24
- }): Promise<import("@rsbuild/shared").RsbuildInstance<any> | undefined>;
24
+ }): Promise<import("@rsbuild/shared").RsbuildInstance | undefined>;
25
25
  export declare function runCli(): void;
@@ -81,7 +81,7 @@ async function init({
81
81
  }
82
82
  }
83
83
  function runCli() {
84
- import_commander.program.name("rsbuild").usage("<command> [options]").version("0.1.5");
84
+ import_commander.program.name("rsbuild").usage("<command> [options]").version("0.1.7");
85
85
  import_commander.program.command("dev").option("--open", "open the page in browser on startup").option(
86
86
  "--port <port>",
87
87
  "specify a port number for Rsbuild Server to listen"
@@ -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.1.5"}`}
37
+ import_rslog.logger.greet(` ${`Rsbuild v${"0.1.7"}`}
38
38
  `);
39
39
  }
40
40
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,10 +1,10 @@
1
1
  import { type RsbuildInstance, type RsbuildProvider, type CreateRsbuildOptions } from '@rsbuild/shared';
2
2
  import type { RsbuildConfig } from './types';
3
- export declare function createRsbuild<P extends ({
4
- rsbuildConfig
5
- }: {
6
- rsbuildConfig: T;
7
- }) => RsbuildProvider, T extends RsbuildConfig>(options: CreateRsbuildOptions & {
8
- rsbuildConfig: T;
9
- provider?: P;
10
- }): Promise<RsbuildInstance<ReturnType<P>>>;
3
+ export declare function createRsbuild(options: CreateRsbuildOptions & {
4
+ rsbuildConfig: RsbuildConfig;
5
+ provider?: ({
6
+ rsbuildConfig
7
+ }: {
8
+ rsbuildConfig: RsbuildConfig;
9
+ }) => RsbuildProvider;
10
+ }): Promise<RsbuildInstance>;
@@ -34,7 +34,7 @@ module.exports = __toCommonJS(createRsbuild_exports);
34
34
  var import_shared = require("@rsbuild/shared");
35
35
  var import_plugins = require("./plugins");
36
36
  const getRspackProvider = async (rsbuildConfig) => {
37
- const { rspackProvider } = await Promise.resolve().then(() => __toESM(require("./rspack-provider")));
37
+ const { rspackProvider } = await Promise.resolve().then(() => __toESM(require("./provider")));
38
38
  return rspackProvider({
39
39
  rsbuildConfig
40
40
  });
package/dist/index.d.ts CHANGED
@@ -5,6 +5,6 @@
5
5
  export { createRsbuild } from './createRsbuild';
6
6
  export { defineConfig } from './cli/config';
7
7
  export { logger, mergeRsbuildConfig } from '@rsbuild/shared';
8
- export type { Rspack } from './rspack-provider';
8
+ export type { Rspack } from './provider';
9
9
  export type { RsbuildConfig, NormalizedConfig, RsbuildPlugin, RsbuildPluginAPI } from './types';
10
10
  export type { Context as RsbuildContext, RsbuildMode, RsbuildEntry, RsbuildTarget, RsbuildInstance, CreateRsbuildOptions, InspectConfigOptions, OnExitFn, OnAfterBuildFn, OnAfterCreateCompilerFn, OnAfterStartDevServerFn, OnAfterStartProdServerFn, OnBeforeBuildFn, OnBeforeStartDevServerFn, OnBeforeStartProdServerFn, OnBeforeCreateCompilerFn, OnDevCompileDoneFn, ModifyRsbuildConfigFn } from '@rsbuild/shared';
@@ -1,4 +1,4 @@
1
- import type { HtmlConfig, NormalizedConfig, SharedRsbuildPluginAPI, NormalizedOutputConfig } from '@rsbuild/shared';
1
+ import type { HtmlConfig, RsbuildPluginAPI, NormalizedConfig, NormalizedOutputConfig } from '@rsbuild/shared';
2
2
  import type { RsbuildPlugin } from '../types';
3
3
  export declare function getTitle(entryName: string, config: NormalizedConfig): string;
4
4
  export declare function getInject(entryName: string, config: NormalizedConfig): import("@rsbuild/shared").ScriptInject;
@@ -13,5 +13,5 @@ export declare function getMetaTags(entryName: string, config: {
13
13
  html: HtmlConfig;
14
14
  output: NormalizedOutputConfig;
15
15
  }, templateContent?: string): import("@rsbuild/shared").MetaOptions;
16
- export declare const applyInjectTags: (api: SharedRsbuildPluginAPI) => void;
16
+ export declare const applyInjectTags: (api: RsbuildPluginAPI) => void;
17
17
  export declare const pluginHtml: () => RsbuildPlugin;
@@ -155,7 +155,7 @@ const applyInjectTags = (api) => {
155
155
  if (!tags.length && !shouldByEntries) {
156
156
  return;
157
157
  }
158
- const { HtmlTagsPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack-plugins/HtmlTagsPlugin")));
158
+ const { HtmlTagsPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack/HtmlTagsPlugin")));
159
159
  const sharedOptions = {
160
160
  HtmlPlugin,
161
161
  append: true,
@@ -246,19 +246,19 @@ const pluginHtml = () => ({
246
246
  chain.plugin(`${CHAIN_ID.PLUGIN.HTML}-${entryName}`).use(HtmlPlugin, [finalOptions]);
247
247
  })
248
248
  );
249
- const { HtmlBasicPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack-plugins/HtmlBasicPlugin")));
249
+ const { HtmlBasicPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack/HtmlBasicPlugin")));
250
250
  chain.plugin(CHAIN_ID.PLUGIN.HTML_BASIC).use(HtmlBasicPlugin, [{ HtmlPlugin, info: htmlInfoMap }]);
251
251
  if (config.security) {
252
252
  const { nonce } = config.security;
253
253
  if (nonce) {
254
- const { HtmlNoncePlugin } = await Promise.resolve().then(() => __toESM(require("../rspack-plugins/HtmlNoncePlugin")));
254
+ const { HtmlNoncePlugin } = await Promise.resolve().then(() => __toESM(require("../rspack/HtmlNoncePlugin")));
255
255
  chain.plugin(CHAIN_ID.PLUGIN.HTML_NONCE).use(HtmlNoncePlugin, [{ nonce, HtmlPlugin }]);
256
256
  }
257
257
  }
258
258
  if (config.html) {
259
259
  const { appIcon, crossorigin } = config.html;
260
260
  if (crossorigin) {
261
- const { HtmlCrossOriginPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack-plugins/HtmlCrossOriginPlugin")));
261
+ const { HtmlCrossOriginPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack/HtmlCrossOriginPlugin")));
262
262
  const formattedCrossorigin = crossorigin === true ? "anonymous" : crossorigin;
263
263
  chain.plugin(CHAIN_ID.PLUGIN.HTML_CROSS_ORIGIN).use(HtmlCrossOriginPlugin, [
264
264
  { crossOrigin: formattedCrossorigin, HtmlPlugin }
@@ -266,7 +266,7 @@ const pluginHtml = () => ({
266
266
  chain.output.crossOriginLoading(formattedCrossorigin);
267
267
  }
268
268
  if (appIcon) {
269
- const { HtmlAppIconPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack-plugins/HtmlAppIconPlugin")));
269
+ const { HtmlAppIconPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack/HtmlAppIconPlugin")));
270
270
  const distDir = (0, import_shared.getDistPath)(config.output, "image");
271
271
  const iconPath = import_path.default.isAbsolute(appIcon) ? appIcon : import_path.default.join(api.context.rootPath, appIcon);
272
272
  chain.plugin(CHAIN_ID.PLUGIN.APP_ICON).use(HtmlAppIconPlugin, [{ iconPath, distDir, HtmlPlugin }]);
@@ -53,7 +53,8 @@ const plugins = {
53
53
  networkPerformance: () => Promise.resolve().then(() => __toESM(require("./networkPerformance"))).then((m) => m.pluginNetworkPerformance()),
54
54
  preloadOrPrefetch: () => Promise.resolve().then(() => __toESM(require("./preloadOrPrefetch"))).then((m) => m.pluginPreloadOrPrefetch()),
55
55
  performance: () => Promise.resolve().then(() => __toESM(require("./performance"))).then((m) => m.pluginPerformance()),
56
- define: () => Promise.resolve().then(() => __toESM(require("./define"))).then((m) => m.pluginDefine())
56
+ define: () => Promise.resolve().then(() => __toESM(require("./define"))).then((m) => m.pluginDefine()),
57
+ server: () => Promise.resolve().then(() => __toESM(require("./server"))).then((m) => m.pluginServer())
57
58
  };
58
59
  // Annotate the CommonJS export names for ESM import in node:
59
60
  0 && (module.exports = {
@@ -41,7 +41,7 @@ const pluginInlineChunk = () => ({
41
41
  if ((0, import_shared.isHtmlDisabled)(config, target) || !isProd) {
42
42
  return;
43
43
  }
44
- const { InlineChunkHtmlPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack-plugins/InlineChunkHtmlPlugin")));
44
+ const { InlineChunkHtmlPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack/InlineChunkHtmlPlugin")));
45
45
  const { inlineStyles, inlineScripts } = config.output;
46
46
  const scriptTests = [];
47
47
  const styleTests = [];
@@ -43,7 +43,7 @@ const pluginNetworkPerformance = () => ({
43
43
  if (isServer || isWebWorker || isServiceWorker) {
44
44
  return;
45
45
  }
46
- const { HtmlNetworkPerformancePlugin } = await Promise.resolve().then(() => __toESM(require("../rspack-plugins/HtmlNetworkPerformancePlugin")));
46
+ const { HtmlNetworkPerformancePlugin } = await Promise.resolve().then(() => __toESM(require("../rspack/HtmlNetworkPerformancePlugin")));
47
47
  if (dnsPrefetch) {
48
48
  chain.plugin(CHAIN_ID.PLUGIN.HTML_DNS_PREFETCH).use(HtmlNetworkPerformancePlugin, [
49
49
  dnsPrefetch,
@@ -44,7 +44,7 @@ const pluginPreloadOrPrefetch = () => ({
44
44
  return;
45
45
  }
46
46
  const HTMLCount = chain.entryPoints.values().length;
47
- const { HTMLPreloadOrPrefetchPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack-plugins/HtmlPreloadOrPrefetchPlugin")));
47
+ const { HTMLPreloadOrPrefetchPlugin } = await Promise.resolve().then(() => __toESM(require("../rspack/HtmlPreloadOrPrefetchPlugin")));
48
48
  if (prefetch) {
49
49
  chain.plugin(CHAIN_ID.PLUGIN.HTML_PREFETCH).use(HTMLPreloadOrPrefetchPlugin, [
50
50
  prefetch,
@@ -0,0 +1,2 @@
1
+ import type { RsbuildPlugin } from '../types';
2
+ export declare const pluginServer: () => RsbuildPlugin;
@@ -0,0 +1,56 @@
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
+ });
@@ -68,7 +68,7 @@ function createContextByConfig(options, bundlerType, sourceConfig = {}, outputCo
68
68
  entry: sourceConfig.entry || // TODO: remove sourceConfig.entries in v0.2.0
69
69
  // compat with previous config
70
70
  sourceConfig.entries || getDefaultEntry(rootPath),
71
- version: "0.1.5",
71
+ version: "0.1.7",
72
72
  target,
73
73
  rootPath,
74
74
  distPath,
@@ -1,5 +1,4 @@
1
- import { type OnExitFn, type OnAfterBuildFn, type OnBeforeBuildFn, type OnDevCompileDoneFn, type ModifyRsbuildConfigFn, type OnAfterStartDevServerFn, type OnBeforeStartDevServerFn, type OnAfterStartProdServerFn, type OnBeforeStartProdServerFn, type OnAfterCreateCompilerFn, type OnBeforeCreateCompilerFn, type ModifyBundlerChainFn, type RspackConfig, type ModifyRspackConfigFn } from '@rsbuild/shared';
2
- import type { RsbuildConfig } from '../../types';
1
+ import type { OnExitFn, OnAfterBuildFn, OnBeforeBuildFn, OnDevCompileDoneFn, ModifyBundlerChainFn, ModifyRspackConfigFn, ModifyWebpackChainFn, ModifyWebpackConfigFn, ModifyRsbuildConfigFn, OnAfterStartDevServerFn, OnBeforeStartDevServerFn, OnAfterStartProdServerFn, OnBeforeStartProdServerFn, OnAfterCreateCompilerFn, OnBeforeCreateCompilerFn } from '@rsbuild/shared';
3
2
  export declare function initHooks(): {
4
3
  /** parameters are not bundler-related */
5
4
  onExitHook: import("@rsbuild/shared").AsyncHook<OnExitFn>;
@@ -10,11 +9,13 @@ export declare function initHooks(): {
10
9
  onBeforeStartProdServerHook: import("@rsbuild/shared").AsyncHook<OnBeforeStartProdServerFn>;
11
10
  /** parameters are bundler-related */
12
11
  onAfterBuildHook: import("@rsbuild/shared").AsyncHook<OnAfterBuildFn>;
13
- onBeforeBuildHook: import("@rsbuild/shared").AsyncHook<OnBeforeBuildFn<RspackConfig>>;
12
+ onBeforeBuildHook: import("@rsbuild/shared").AsyncHook<OnBeforeBuildFn>;
14
13
  modifyRspackConfigHook: import("@rsbuild/shared").AsyncHook<ModifyRspackConfigFn>;
15
- modifyRsbuildConfigHook: import("@rsbuild/shared").AsyncHook<ModifyRsbuildConfigFn<RsbuildConfig>>;
16
- onAfterCreateCompilerHook: import("@rsbuild/shared").AsyncHook<OnAfterCreateCompilerFn>;
17
- onBeforeCreateCompilerHook: import("@rsbuild/shared").AsyncHook<OnBeforeCreateCompilerFn<RspackConfig>>;
18
14
  modifyBundlerChainHook: import("@rsbuild/shared").AsyncHook<ModifyBundlerChainFn>;
15
+ modifyWebpackChainHook: import("@rsbuild/shared").AsyncHook<ModifyWebpackChainFn>;
16
+ modifyWebpackConfigHook: import("@rsbuild/shared").AsyncHook<ModifyWebpackConfigFn>;
17
+ modifyRsbuildConfigHook: import("@rsbuild/shared").AsyncHook<ModifyRsbuildConfigFn>;
18
+ onAfterCreateCompilerHook: import("@rsbuild/shared").AsyncHook<OnAfterCreateCompilerFn>;
19
+ onBeforeCreateCompilerHook: import("@rsbuild/shared").AsyncHook<OnBeforeCreateCompilerFn>;
19
20
  };
20
21
  export type Hooks = ReturnType<typeof initHooks>;
@@ -35,10 +35,12 @@ function initHooks() {
35
35
  onAfterBuildHook: (0, import_shared.createAsyncHook)(),
36
36
  onBeforeBuildHook: (0, import_shared.createAsyncHook)(),
37
37
  modifyRspackConfigHook: (0, import_shared.createAsyncHook)(),
38
+ modifyBundlerChainHook: (0, import_shared.createAsyncHook)(),
39
+ modifyWebpackChainHook: (0, import_shared.createAsyncHook)(),
40
+ modifyWebpackConfigHook: (0, import_shared.createAsyncHook)(),
38
41
  modifyRsbuildConfigHook: (0, import_shared.createAsyncHook)(),
39
42
  onAfterCreateCompilerHook: (0, import_shared.createAsyncHook)(),
40
- onBeforeCreateCompilerHook: (0, import_shared.createAsyncHook)(),
41
- modifyBundlerChainHook: (0, import_shared.createAsyncHook)()
43
+ onBeforeCreateCompilerHook: (0, import_shared.createAsyncHook)()
42
44
  };
43
45
  }
44
46
  // Annotate the CommonJS export names for ESM import in node:
@@ -0,0 +1,9 @@
1
+ import { type PluginStore, type RsbuildPluginAPI } from '@rsbuild/shared';
2
+ import type { Context } from '../../types';
3
+ export declare function getPluginAPI({
4
+ context,
5
+ pluginStore
6
+ }: {
7
+ context: Context;
8
+ pluginStore: PluginStore;
9
+ }): RsbuildPluginAPI;
@@ -68,19 +68,17 @@ function getPluginAPI({
68
68
  onAfterBuild: hooks.onAfterBuildHook.tap,
69
69
  onBeforeBuild: hooks.onBeforeBuildHook.tap,
70
70
  onDevCompileDone: hooks.onDevCompileDoneHook.tap,
71
+ modifyBundlerChain: hooks.modifyBundlerChainHook.tap,
71
72
  modifyRspackConfig: hooks.modifyRspackConfigHook.tap,
73
+ modifyWebpackChain: hooks.modifyWebpackChainHook.tap,
74
+ modifyWebpackConfig: hooks.modifyWebpackConfigHook.tap,
72
75
  modifyRsbuildConfig: hooks.modifyRsbuildConfigHook.tap,
73
- modifyBundlerChain: hooks.modifyBundlerChainHook.tap,
74
76
  onAfterCreateCompiler: hooks.onAfterCreateCompilerHook.tap,
75
- onBeforeCreateCompiler: hooks.onBeforeCreateCompilerHook.tap,
76
77
  onAfterStartDevServer: hooks.onAfterStartDevServerHook.tap,
78
+ onBeforeCreateCompiler: hooks.onBeforeCreateCompilerHook.tap,
77
79
  onBeforeStartDevServer: hooks.onBeforeStartDevServerHook.tap,
78
80
  onAfterStartProdServer: hooks.onAfterStartProdServerHook.tap,
79
- onBeforeStartProdServer: hooks.onBeforeStartProdServerHook.tap,
80
- modifyWebpackChain: () => {
81
- },
82
- modifyWebpackConfig: () => {
83
- }
81
+ onBeforeStartProdServer: hooks.onBeforeStartProdServerHook.tap
84
82
  };
85
83
  }
86
84
  // Annotate the CommonJS export names for ESM import in node:
@@ -0,0 +1,11 @@
1
+ export { getRspackVersion } from './shared';
2
+ export { rspackProvider } from './provider';
3
+ export type { Rspack, RspackConfig } from '@rsbuild/shared';
4
+ export { createPublicContext, createContextByConfig } from './core/createContext';
5
+ export { initPlugins } from '@rsbuild/shared';
6
+ export { initHooks, type Hooks } from './core/initHooks';
7
+ export { withDefaultConfig } from './config';
8
+ export { initRsbuildConfig } from './core/initConfigs';
9
+ export { getPluginAPI } from './core/initPlugins';
10
+ export { applyBaseCSSRule, applyCSSModuleRule } from './plugins/css';
11
+ export type { Context } from '../types';
@@ -16,24 +16,41 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var rspack_provider_exports = {};
20
- __export(rspack_provider_exports, {
19
+ var provider_exports = {};
20
+ __export(provider_exports, {
21
+ applyBaseCSSRule: () => import_css.applyBaseCSSRule,
22
+ applyCSSModuleRule: () => import_css.applyCSSModuleRule,
21
23
  createContextByConfig: () => import_createContext.createContextByConfig,
22
24
  createPublicContext: () => import_createContext.createPublicContext,
25
+ getPluginAPI: () => import_initPlugins.getPluginAPI,
23
26
  getRspackVersion: () => import_shared.getRspackVersion,
27
+ initHooks: () => import_initHooks.initHooks,
28
+ initPlugins: () => import_shared2.initPlugins,
24
29
  initRsbuildConfig: () => import_initConfigs.initRsbuildConfig,
25
- rspackProvider: () => import_provider.rspackProvider
30
+ rspackProvider: () => import_provider.rspackProvider,
31
+ withDefaultConfig: () => import_config.withDefaultConfig
26
32
  });
27
- module.exports = __toCommonJS(rspack_provider_exports);
33
+ module.exports = __toCommonJS(provider_exports);
28
34
  var import_shared = require("./shared");
29
35
  var import_provider = require("./provider");
30
36
  var import_createContext = require("./core/createContext");
37
+ var import_shared2 = require("@rsbuild/shared");
38
+ var import_initHooks = require("./core/initHooks");
39
+ var import_config = require("./config");
31
40
  var import_initConfigs = require("./core/initConfigs");
41
+ var import_initPlugins = require("./core/initPlugins");
42
+ var import_css = require("./plugins/css");
32
43
  // Annotate the CommonJS export names for ESM import in node:
33
44
  0 && (module.exports = {
45
+ applyBaseCSSRule,
46
+ applyCSSModuleRule,
34
47
  createContextByConfig,
35
48
  createPublicContext,
49
+ getPluginAPI,
36
50
  getRspackVersion,
51
+ initHooks,
52
+ initPlugins,
37
53
  initRsbuildConfig,
38
- rspackProvider
54
+ rspackProvider,
55
+ withDefaultConfig
39
56
  });
@@ -158,7 +158,7 @@ const pluginCss = () => {
158
158
  const enableSourceMap = (0, import_shared.isUseCssSourceMap)(config);
159
159
  const enableExtractCSS = (0, import_shared.isUseCssExtract)(config, utils.target);
160
160
  if (!enableSourceMap && enableExtractCSS) {
161
- const { RemoveCssSourcemapPlugin } = await Promise.resolve().then(() => __toESM(require("../../rspack-plugins/RemoveCssSourcemapPlugin")));
161
+ const { RemoveCssSourcemapPlugin } = await Promise.resolve().then(() => __toESM(require("../../rspack/RemoveCssSourcemapPlugin")));
162
162
  chain.plugin("remove-css-sourcemap").use(RemoveCssSourcemapPlugin, [utils.HtmlPlugin]);
163
163
  }
164
164
  });
@@ -0,0 +1,7 @@
1
+ import { type RsbuildProvider } from '@rsbuild/shared';
2
+ import type { RsbuildConfig } from '../types';
3
+ export declare function rspackProvider({
4
+ rsbuildConfig: originalRsbuildConfig
5
+ }: {
6
+ rsbuildConfig: RsbuildConfig;
7
+ }): RsbuildProvider;
@@ -75,6 +75,7 @@ const applyDefaultPlugins = (plugins) => (0, import_shared3.awaitableGetter)([
75
75
  plugins.networkPerformance(),
76
76
  plugins.preloadOrPrefetch(),
77
77
  plugins.performance(),
78
+ plugins.server(),
78
79
  Promise.resolve().then(() => __toESM(require("./plugins/rspackProfile"))).then((m) => m.pluginRspackProfile())
79
80
  ]);
80
81
  const getRspackVersion = async () => {
@@ -88,12 +89,30 @@ const getRspackVersion = async () => {
88
89
  }
89
90
  };
90
91
  const rspackMinVersion = "0.3.6";
92
+ const compareSemver = (version1, version2) => {
93
+ const parts1 = version1.split(".").map(Number);
94
+ const parts2 = version2.split(".").map(Number);
95
+ const len = Math.max(parts1.length, parts2.length);
96
+ for (let i = 0; i < len; i++) {
97
+ const item1 = parts1[i] ?? 0;
98
+ const item2 = parts2[i] ?? 0;
99
+ if (item1 > item2) {
100
+ return 1;
101
+ }
102
+ if (item1 < item2) {
103
+ return -1;
104
+ }
105
+ }
106
+ return 0;
107
+ };
91
108
  const isSatisfyRspackVersion = async (version) => {
92
- const semver = await Promise.resolve().then(() => __toESM(require("semver")));
93
109
  if (version.includes("-canary")) {
94
110
  version = version.split("-canary")[0];
95
111
  }
96
- return version ? semver.lte(rspackMinVersion, version) : true;
112
+ if (version && /^[\d\.]+$/.test(version)) {
113
+ return compareSemver(version, rspackMinVersion) >= 0;
114
+ }
115
+ return true;
97
116
  };
98
117
  const getCompiledPath = (packageName) => {
99
118
  const providerCompilerPath = (0, import_path.join)(__dirname, "../../compiled", packageName);
@@ -113,6 +113,16 @@ class RsbuildDevServer {
113
113
  }
114
114
  devMiddleware.init(app);
115
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
+ }
116
126
  const { distPath } = this.output;
117
127
  this.middlewares.use(
118
128
  (0, import_middlewares.getHtmlFallbackMiddleware)({
@@ -180,7 +190,8 @@ async function startDevServer(options, createDevMiddleware, {
180
190
  let urls = (0, import_shared.getAddressUrls)(protocol, port, host);
181
191
  const routes = (0, import_shared.formatRoutes)(
182
192
  options.context.entry,
183
- rsbuildConfig.output?.distPath?.html
193
+ rsbuildConfig.output?.distPath?.html,
194
+ rsbuildConfig.html?.outputStructure
184
195
  );
185
196
  (0, import_shared.debug)("create dev server");
186
197
  const { devMiddleware, compiler } = await createDevMiddleware(
@@ -162,7 +162,8 @@ async function startProdServer(context, rsbuildConfig, { printURLs = true, getPo
162
162
  async () => {
163
163
  const routes = (0, import_shared.formatRoutes)(
164
164
  context.entry,
165
- rsbuildConfig.output?.distPath?.html
165
+ rsbuildConfig.output?.distPath?.html,
166
+ rsbuildConfig.html?.outputStructure
166
167
  );
167
168
  await context.hooks.onAfterStartProdServerHook.call({
168
169
  port,
package/dist/types.d.ts CHANGED
@@ -1,8 +1,6 @@
1
- import type { Context as BaseContext, RsbuildConfig, NormalizedConfig, DefaultRsbuildPluginAPI, RsbuildPlugin as BaseRsbuildPlugin } from '@rsbuild/shared';
2
- import type { Hooks } from './rspack-provider/core/initHooks';
3
- import type { RspackConfig } from '@rsbuild/shared';
4
- export interface RsbuildPluginAPI extends DefaultRsbuildPluginAPI<RsbuildConfig, NormalizedConfig, RspackConfig> {}
5
- export type RsbuildPlugin<T = RsbuildPluginAPI> = BaseRsbuildPlugin<T>;
1
+ import type { Context as BaseContext, RsbuildConfig, RsbuildPlugin, NormalizedConfig, RsbuildPluginAPI } from '@rsbuild/shared';
2
+ import type { Hooks } from './provider/core/initHooks';
3
+ export type { RsbuildPlugin, RsbuildPluginAPI };
6
4
  /** The inner context. */
7
5
  export type Context = BaseContext & {
8
6
  /** All hooks. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsbuild/core",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
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": {
@@ -33,13 +33,9 @@
33
33
  "types": "./dist/plugins/*.d.ts",
34
34
  "default": "./dist/plugins/*.js"
35
35
  },
36
- "./rspack-plugin-css": {
37
- "types": "./dist/rspack-provider/plugins/css.d.ts",
38
- "default": "./dist/rspack-provider/plugins/css.js"
39
- },
40
- "./rspack-provider": {
41
- "types": "./dist/rspack-provider/index.d.ts",
42
- "default": "./dist/rspack-provider/index.js"
36
+ "./provider": {
37
+ "types": "./dist/provider/index.d.ts",
38
+ "default": "./dist/provider/index.js"
43
39
  },
44
40
  "./types": {
45
41
  "types": "./types.d.ts"
@@ -62,12 +58,10 @@
62
58
  "core-js": "~3.32.2",
63
59
  "html-webpack-plugin": "npm:html-rspack-plugin@5.5.7",
64
60
  "postcss": "8.4.31",
65
- "semver": "^7.5.4",
66
- "@rsbuild/shared": "0.1.5"
61
+ "@rsbuild/shared": "0.1.7"
67
62
  },
68
63
  "devDependencies": {
69
64
  "@types/node": "^16",
70
- "@types/semver": "^7.5.4",
71
65
  "typescript": "^5.3.0",
72
66
  "webpack": "^5.89.0"
73
67
  },
@@ -1,9 +0,0 @@
1
- import { type PluginStore } from '@rsbuild/shared';
2
- import type { Context, RsbuildPluginAPI } from '../../types';
3
- export declare function getPluginAPI({
4
- context,
5
- pluginStore
6
- }: {
7
- context: Context;
8
- pluginStore: PluginStore;
9
- }): RsbuildPluginAPI;
@@ -1,6 +0,0 @@
1
- export { getRspackVersion } from './shared';
2
- export { rspackProvider } from './provider';
3
- export type { RspackProvider } from './provider';
4
- export type { Rspack, RspackConfig } from '@rsbuild/shared';
5
- export { createPublicContext, createContextByConfig } from './core/createContext';
6
- export { initRsbuildConfig } from './core/initConfigs';
@@ -1,8 +0,0 @@
1
- import { type RsbuildProvider, type RspackConfig } from '@rsbuild/shared';
2
- import type { RsbuildConfig, NormalizedConfig } from '../types';
3
- export type RspackProvider = RsbuildProvider<RsbuildConfig, RspackConfig, NormalizedConfig>;
4
- export declare function rspackProvider({
5
- rsbuildConfig: originalRsbuildConfig
6
- }: {
7
- rsbuildConfig: RsbuildConfig;
8
- }): RspackProvider;
File without changes
File without changes
File without changes
File without changes