@rsbuild/core 0.2.8 → 0.2.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.
@@ -47,7 +47,7 @@ async function init({
47
47
  }
48
48
  try {
49
49
  const root = process.cwd();
50
- const { publicVars } = await (0, import_loadEnv.loadEnv)({ cwd: root });
50
+ const { publicVars } = (0, import_loadEnv.loadEnv)({ cwd: root });
51
51
  const config = await (0, import_config.loadConfig)({
52
52
  cwd: root,
53
53
  path: commonOpts.config
@@ -83,7 +83,7 @@ async function init({
83
83
  }
84
84
  }
85
85
  function runCli() {
86
- import_commander.program.name("rsbuild").usage("<command> [options]").version("0.2.8");
86
+ import_commander.program.name("rsbuild").usage("<command> [options]").version("0.2.10");
87
87
  import_commander.program.command("dev").option("--open", "open the page in browser on startup").option(
88
88
  "--port <port>",
89
89
  "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.2.8"}`}
37
+ import_rslog.logger.greet(` ${`Rsbuild v${"0.2.10"}`}
38
38
  `);
39
39
  }
40
40
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  * The methods and types exported from this file are considered as
3
3
  * the public API of @rsbuild/core.
4
4
  */
5
+ export { loadEnv } from './loadEnv';
5
6
  export { createRsbuild } from './createRsbuild';
6
7
  export { loadConfig, defineConfig } from './cli/config';
7
8
  export { logger, mergeRsbuildConfig } from '@rsbuild/shared';
package/dist/index.js CHANGED
@@ -21,10 +21,12 @@ __export(src_exports, {
21
21
  createRsbuild: () => import_createRsbuild.createRsbuild,
22
22
  defineConfig: () => import_config.defineConfig,
23
23
  loadConfig: () => import_config.loadConfig,
24
+ loadEnv: () => import_loadEnv.loadEnv,
24
25
  logger: () => import_shared.logger,
25
26
  mergeRsbuildConfig: () => import_shared.mergeRsbuildConfig
26
27
  });
27
28
  module.exports = __toCommonJS(src_exports);
29
+ var import_loadEnv = require("./loadEnv");
28
30
  var import_createRsbuild = require("./createRsbuild");
29
31
  var import_config = require("./cli/config");
30
32
  var import_shared = require("@rsbuild/shared");
@@ -33,6 +35,7 @@ var import_shared = require("@rsbuild/shared");
33
35
  createRsbuild,
34
36
  defineConfig,
35
37
  loadConfig,
38
+ loadEnv,
36
39
  logger,
37
40
  mergeRsbuildConfig
38
41
  });
package/dist/loadEnv.d.ts CHANGED
@@ -2,7 +2,7 @@ export declare const getEnvFiles: () => string[];
2
2
  export declare function loadEnv({ cwd, prefixes, }?: {
3
3
  cwd?: string;
4
4
  prefixes?: string[];
5
- }): Promise<{
5
+ }): {
6
6
  parsed: Record<string, string>;
7
7
  publicVars: Record<string, string>;
8
- }>;
8
+ };
package/dist/loadEnv.js CHANGED
@@ -35,30 +35,23 @@ module.exports = __toCommonJS(loadEnv_exports);
35
35
  var import_fs = __toESM(require("fs"));
36
36
  var import_path = require("path");
37
37
  var import_shared = require("@rsbuild/shared");
38
+ var import_restart = require("./server/restart");
39
+ var import_dotenv = require("../compiled/dotenv");
40
+ var import_dotenv_expand = require("../compiled/dotenv-expand");
38
41
  const getEnvFiles = () => {
39
42
  const { NODE_ENV } = process.env;
40
43
  return [".env", ".env.local", `.env.${NODE_ENV}`, `.env.${NODE_ENV}.local`];
41
44
  };
42
- let lastParsed;
43
- async function loadEnv({
45
+ function loadEnv({
44
46
  cwd = process.cwd(),
45
47
  prefixes = ["PUBLIC_"]
46
48
  } = {}) {
47
- const { parse } = await Promise.resolve().then(() => __toESM(require("../compiled/dotenv")));
48
- const { expand } = await Promise.resolve().then(() => __toESM(require("../compiled/dotenv-expand")));
49
49
  const envPaths = getEnvFiles().map((filename) => (0, import_path.join)(cwd, filename)).filter(import_shared.isFileSync);
50
50
  const parsed = {};
51
51
  envPaths.forEach((envPath) => {
52
- Object.assign(parsed, parse(import_fs.default.readFileSync(envPath)));
52
+ Object.assign(parsed, (0, import_dotenv.parse)(import_fs.default.readFileSync(envPath)));
53
53
  });
54
- if (lastParsed) {
55
- Object.keys(lastParsed).forEach((key) => {
56
- if (process.env[key] === lastParsed[key]) {
57
- delete process.env[key];
58
- }
59
- });
60
- }
61
- expand({ parsed });
54
+ (0, import_dotenv_expand.expand)({ parsed });
62
55
  const publicVars = {};
63
56
  Object.keys(process.env).forEach((key) => {
64
57
  const val = process.env[key];
@@ -66,7 +59,15 @@ async function loadEnv({
66
59
  publicVars[`process.env.${key}`] = JSON.stringify(val);
67
60
  }
68
61
  });
69
- lastParsed = parsed;
62
+ if ((0, import_shared.isDev)()) {
63
+ (0, import_restart.onBeforeRestartServer)(() => {
64
+ Object.keys(parsed).forEach((key) => {
65
+ if (process.env[key] === parsed[key]) {
66
+ delete process.env[key];
67
+ }
68
+ });
69
+ });
70
+ }
70
71
  return {
71
72
  parsed,
72
73
  publicVars
@@ -98,10 +98,8 @@ function splitByModule(ctx) {
98
98
  vendors: {
99
99
  priority: -10,
100
100
  test: import_shared.NODE_MODULES_REGEX,
101
- // TODO: not support in rspack
102
- // @ts-expect-error
103
101
  name(module2) {
104
- return (0, import_shared.getPackageNameFromModulePath)(module2.context);
102
+ return module2 ? (0, import_shared.getPackageNameFromModulePath)(module2.context) : void 0;
105
103
  }
106
104
  },
107
105
  ...override.cacheGroups
@@ -59,7 +59,7 @@ function createContextByConfig(options, bundlerType, config = {}) {
59
59
  const context = {
60
60
  entry: config.source?.entry || getDefaultEntry(rootPath),
61
61
  targets: config.output?.targets || [],
62
- version: "0.2.8",
62
+ version: "0.2.10",
63
63
  rootPath,
64
64
  distPath,
65
65
  cachePath,
@@ -164,18 +164,16 @@ async function startDevServer(options, createDevMiddleware, {
164
164
  }
165
165
  (0, import_shared.debug)("listen dev server done");
166
166
  await serverAPIs.afterStart();
167
- const onClose = async () => {
167
+ const closeServer = async () => {
168
168
  await devMiddlewares.close();
169
169
  httpServer.close();
170
170
  };
171
- (0, import_restart.registerCleaner)(onClose);
171
+ (0, import_restart.onBeforeRestartServer)(closeServer);
172
172
  resolve({
173
173
  port,
174
174
  urls: urls.map((item) => item.url),
175
175
  server: {
176
- close: async () => {
177
- await onClose();
178
- }
176
+ close: closeServer
179
177
  }
180
178
  });
181
179
  }
@@ -2,7 +2,7 @@ type Cleaner = () => Promise<unknown> | unknown;
2
2
  /**
3
3
  * Add a cleaner to handle side effects
4
4
  */
5
- export declare const registerCleaner: (cleaner: Cleaner) => void;
5
+ export declare const onBeforeRestartServer: (cleaner: Cleaner) => void;
6
6
  export declare const restartDevServer: ({ filePath }: {
7
7
  filePath: string;
8
8
  }) => Promise<void>;
@@ -28,15 +28,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var restart_exports = {};
30
30
  __export(restart_exports, {
31
- registerCleaner: () => registerCleaner,
31
+ onBeforeRestartServer: () => onBeforeRestartServer,
32
32
  restartDevServer: () => restartDevServer
33
33
  });
34
34
  module.exports = __toCommonJS(restart_exports);
35
35
  var import_path = __toESM(require("path"));
36
36
  var import_shared = require("@rsbuild/shared");
37
37
  var import_commands = require("../cli/commands");
38
- const cleaners = [];
39
- const registerCleaner = (cleaner) => {
38
+ let cleaners = [];
39
+ const onBeforeRestartServer = (cleaner) => {
40
40
  cleaners.push(cleaner);
41
41
  };
42
42
  const clearConsole = () => {
@@ -51,6 +51,7 @@ const restartDevServer = async ({ filePath }) => {
51
51
  `);
52
52
  for (const cleaner of cleaners) {
53
53
  await cleaner();
54
+ cleaners = [];
54
55
  }
55
56
  const rsbuild = await (0, import_commands.init)({ isRestart: true });
56
57
  if (!rsbuild) {
@@ -60,6 +61,6 @@ const restartDevServer = async ({ filePath }) => {
60
61
  };
61
62
  // Annotate the CommonJS export names for ESM import in node:
62
63
  0 && (module.exports = {
63
- registerCleaner,
64
+ onBeforeRestartServer,
64
65
  restartDevServer
65
66
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsbuild/core",
3
- "version": "0.2.8",
3
+ "version": "0.2.10",
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": {
@@ -60,7 +60,7 @@
60
60
  "core-js": "~3.32.2",
61
61
  "html-webpack-plugin": "npm:html-rspack-plugin@5.5.7",
62
62
  "postcss": "8.4.31",
63
- "@rsbuild/shared": "0.2.8"
63
+ "@rsbuild/shared": "0.2.10"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@types/node": "16.x",