@rsbuild/core 0.1.4 → 0.1.6

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 (52) hide show
  1. package/dist/cli/commands.d.ts +1 -1
  2. package/dist/cli/commands.js +10 -3
  3. package/dist/cli/config.d.ts +1 -1
  4. package/dist/cli/config.js +13 -9
  5. package/dist/cli/prepare.js +1 -1
  6. package/dist/createRsbuild.d.ts +8 -8
  7. package/dist/loadEnv.d.ts +8 -2
  8. package/dist/loadEnv.js +22 -10
  9. package/dist/plugins/html.d.ts +2 -2
  10. package/dist/plugins/html.js +6 -6
  11. package/dist/plugins/index.js +2 -1
  12. package/dist/plugins/inlineChunk.js +1 -1
  13. package/dist/plugins/networkPerformance.js +13 -3
  14. package/dist/plugins/preloadOrPrefetch.js +13 -3
  15. package/dist/plugins/server.d.ts +2 -0
  16. package/dist/plugins/server.js +56 -0
  17. package/dist/rspack-plugins/HtmlAppIconPlugin.d.ts +16 -0
  18. package/dist/rspack-plugins/HtmlAppIconPlugin.js +97 -0
  19. package/dist/rspack-plugins/HtmlCrossOriginPlugin.d.ts +15 -0
  20. package/dist/rspack-plugins/HtmlCrossOriginPlugin.js +59 -0
  21. package/dist/rspack-plugins/HtmlNetworkPerformancePlugin.d.ts +12 -0
  22. package/dist/rspack-plugins/HtmlNetworkPerformancePlugin.js +72 -0
  23. package/dist/rspack-plugins/HtmlNoncePlugin.d.ts +14 -0
  24. package/dist/rspack-plugins/HtmlNoncePlugin.js +52 -0
  25. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/helpers/determineAsValue.d.ts +25 -0
  26. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/helpers/determineAsValue.js +99 -0
  27. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/helpers/doesChunkBelongToHtml.d.ts +31 -0
  28. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/helpers/doesChunkBelongToHtml.js +75 -0
  29. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/helpers/extractChunks.d.ts +28 -0
  30. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/helpers/extractChunks.js +83 -0
  31. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/helpers/index.d.ts +4 -0
  32. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/helpers/index.js +28 -0
  33. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/helpers/type.d.ts +13 -0
  34. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/helpers/type.js +16 -0
  35. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/index.d.ts +30 -0
  36. package/dist/rspack-plugins/HtmlPreloadOrPrefetchPlugin/index.js +167 -0
  37. package/dist/rspack-plugins/HtmlTagsPlugin.d.ts +30 -0
  38. package/dist/rspack-plugins/HtmlTagsPlugin.js +173 -0
  39. package/dist/rspack-plugins/InlineChunkHtmlPlugin.d.ts +57 -0
  40. package/dist/rspack-plugins/InlineChunkHtmlPlugin.js +182 -0
  41. package/dist/rspack-provider/core/createContext.js +7 -3
  42. package/dist/rspack-provider/core/initHooks.d.ts +7 -6
  43. package/dist/rspack-provider/core/initHooks.js +4 -2
  44. package/dist/rspack-provider/core/initPlugins.d.ts +2 -2
  45. package/dist/rspack-provider/core/initPlugins.js +5 -7
  46. package/dist/rspack-provider/index.d.ts +2 -1
  47. package/dist/rspack-provider/index.js +8 -2
  48. package/dist/rspack-provider/provider.d.ts +3 -4
  49. package/dist/rspack-provider/shared.js +21 -2
  50. package/dist/server/devServer.js +10 -0
  51. package/dist/types.d.ts +2 -4
  52. package/package.json +5 -6
@@ -1,5 +1,5 @@
1
- import { type PluginStore } from '@rsbuild/shared';
2
- import type { Context, RsbuildPluginAPI } from '../../types';
1
+ import { type PluginStore, type RsbuildPluginAPI } from '@rsbuild/shared';
2
+ import type { Context } from '../../types';
3
3
  export declare function getPluginAPI({
4
4
  context,
5
5
  pluginStore
@@ -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:
@@ -1,6 +1,7 @@
1
1
  export { getRspackVersion } from './shared';
2
2
  export { rspackProvider } from './provider';
3
- export type { RspackProvider } from './provider';
4
3
  export type { Rspack, RspackConfig } from '@rsbuild/shared';
5
4
  export { createPublicContext, createContextByConfig } from './core/createContext';
5
+ export { initHooks, type Hooks } from './core/initHooks';
6
+ export { withDefaultConfig } from './config';
6
7
  export { initRsbuildConfig } from './core/initConfigs';
@@ -21,19 +21,25 @@ __export(rspack_provider_exports, {
21
21
  createContextByConfig: () => import_createContext.createContextByConfig,
22
22
  createPublicContext: () => import_createContext.createPublicContext,
23
23
  getRspackVersion: () => import_shared.getRspackVersion,
24
+ initHooks: () => import_initHooks.initHooks,
24
25
  initRsbuildConfig: () => import_initConfigs.initRsbuildConfig,
25
- rspackProvider: () => import_provider.rspackProvider
26
+ rspackProvider: () => import_provider.rspackProvider,
27
+ withDefaultConfig: () => import_config.withDefaultConfig
26
28
  });
27
29
  module.exports = __toCommonJS(rspack_provider_exports);
28
30
  var import_shared = require("./shared");
29
31
  var import_provider = require("./provider");
30
32
  var import_createContext = require("./core/createContext");
33
+ var import_initHooks = require("./core/initHooks");
34
+ var import_config = require("./config");
31
35
  var import_initConfigs = require("./core/initConfigs");
32
36
  // Annotate the CommonJS export names for ESM import in node:
33
37
  0 && (module.exports = {
34
38
  createContextByConfig,
35
39
  createPublicContext,
36
40
  getRspackVersion,
41
+ initHooks,
37
42
  initRsbuildConfig,
38
- rspackProvider
43
+ rspackProvider,
44
+ withDefaultConfig
39
45
  });
@@ -1,8 +1,7 @@
1
- import { type RsbuildProvider, type RspackConfig } from '@rsbuild/shared';
2
- import type { RsbuildConfig, NormalizedConfig } from '../types';
3
- export type RspackProvider = RsbuildProvider<RsbuildConfig, RspackConfig, NormalizedConfig>;
1
+ import { type RsbuildProvider } from '@rsbuild/shared';
2
+ import type { RsbuildConfig } from '../types';
4
3
  export declare function rspackProvider({
5
4
  rsbuildConfig: originalRsbuildConfig
6
5
  }: {
7
6
  rsbuildConfig: RsbuildConfig;
8
- }): RspackProvider;
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)({
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';
1
+ import type { Context as BaseContext, RsbuildConfig, RsbuildPlugin, NormalizedConfig, RsbuildPluginAPI } from '@rsbuild/shared';
2
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>;
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.4",
3
+ "version": "0.1.6",
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": {
@@ -58,17 +58,16 @@
58
58
  "types.d.ts"
59
59
  ],
60
60
  "dependencies": {
61
- "@rspack/core": "0.4.0-canary-d45e3e0-20231128075052",
61
+ "@rspack/core": "0.4.1",
62
62
  "core-js": "~3.32.2",
63
63
  "html-webpack-plugin": "npm:html-rspack-plugin@5.5.7",
64
64
  "postcss": "8.4.31",
65
- "semver": "^7.5.4",
66
- "@rsbuild/shared": "0.1.4"
65
+ "@rsbuild/shared": "0.1.6"
67
66
  },
68
67
  "devDependencies": {
69
68
  "@types/node": "^16",
70
- "@types/semver": "^7.5.4",
71
- "typescript": "^5.3.0"
69
+ "typescript": "^5.3.0",
70
+ "webpack": "^5.89.0"
72
71
  },
73
72
  "engines": {
74
73
  "node": ">=14.0.0"