@backstage/cli 0.34.0-next.1 → 0.34.0

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 (42) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/asset-types/asset-types.d.ts +0 -38
  3. package/config/nodeTransformHooks.mjs +12 -0
  4. package/dist/lib/errors.cjs.js +44 -17
  5. package/dist/lib/run.cjs.js +7 -7
  6. package/dist/lib/version.cjs.js +40 -40
  7. package/dist/lib/versioning/packages.cjs.js +1 -1
  8. package/dist/modules/build/commands/package/build/command.cjs.js +3 -3
  9. package/dist/modules/build/commands/package/start/startFrontend.cjs.js +4 -7
  10. package/dist/modules/build/commands/repo/build.cjs.js +2 -3
  11. package/dist/modules/build/lib/buildFrontend.cjs.js +7 -10
  12. package/dist/modules/build/lib/builder/config.cjs.js +0 -7
  13. package/dist/modules/build/lib/bundler/bundle.cjs.js +24 -29
  14. package/dist/modules/build/lib/bundler/config.cjs.js +40 -28
  15. package/dist/modules/build/lib/bundler/optimization.cjs.js +6 -5
  16. package/dist/modules/build/lib/bundler/packageDetection.cjs.js +4 -9
  17. package/dist/modules/build/lib/bundler/server.cjs.js +18 -22
  18. package/dist/modules/build/lib/bundler/transforms.cjs.js +7 -35
  19. package/dist/modules/info/commands/info.cjs.js +1 -1
  20. package/dist/modules/new/index.cjs.js +7 -3
  21. package/dist/modules/new/lib/execution/PortableTemplater.cjs.js +1 -1
  22. package/dist/packages/backend-defaults/package.json.cjs.js +1 -1
  23. package/dist/packages/backend-plugin-api/package.json.cjs.js +1 -1
  24. package/dist/packages/backend-test-utils/package.json.cjs.js +1 -1
  25. package/dist/packages/catalog-client/package.json.cjs.js +1 -1
  26. package/dist/packages/cli/package.json.cjs.js +15 -19
  27. package/dist/packages/core-components/package.json.cjs.js +1 -1
  28. package/dist/packages/dev-utils/package.json.cjs.js +1 -1
  29. package/dist/packages/frontend-defaults/package.json.cjs.js +1 -1
  30. package/dist/packages/frontend-plugin-api/package.json.cjs.js +1 -1
  31. package/dist/packages/frontend-test-utils/package.json.cjs.js +1 -1
  32. package/dist/packages/test-utils/package.json.cjs.js +1 -1
  33. package/dist/packages/theme/package.json.cjs.js +1 -1
  34. package/dist/plugins/auth-backend/package.json.cjs.js +1 -1
  35. package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js +1 -1
  36. package/dist/plugins/catalog-node/package.json.cjs.js +1 -1
  37. package/dist/plugins/scaffolder-node/package.json.cjs.js +1 -1
  38. package/dist/plugins/scaffolder-node-test-utils/package.json.cjs.js +1 -1
  39. package/dist/wiring/CliInitializer.cjs.js +4 -9
  40. package/package.json +71 -51
  41. package/dist/lib/removed.cjs.js +0 -13
  42. package/dist/lib/svgrTemplate.cjs.js +0 -23
package/CHANGELOG.md CHANGED
@@ -1,5 +1,72 @@
1
1
  # @backstage/cli
2
2
 
3
+ ## 0.34.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 38b4243: Added plugin and module templates for the new frontend system. These templates are not included by default, but can be included by adding `@backstage/cli/templates/new-frontend-plugin` and `@backstage/cli/templates/new-frontend-plugin-module` as [custom templates](https://backstage.io/docs/tooling/cli/templates#installing-custom-templates).
8
+ - 923ceb2: **BREAKING**: The new app build based on [Rspack](https://rspack.dev/) is now the default, and the `EXPERIMENTAL_RSPACK` flag has been removed. To revert to the old behavior, set the `LEGACY_WEBPACK_BUILD` environment flag and install the following optional dependencies:
9
+
10
+ ```json
11
+ {
12
+ "dependencies": {
13
+ "@module-federation/enhanced": "^0.9.0",
14
+ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
15
+ "esbuild-loader": "^4.0.0",
16
+ "eslint-webpack-plugin": "^4.2.0",
17
+ "fork-ts-checker-webpack-plugin": "^9.0.0",
18
+ "mini-css-extract-plugin": "^2.4.2",
19
+ "terser-webpack-plugin": "^5.1.3",
20
+ "webpack": "^5.96.0",
21
+ "webpack-dev-server": "^5.0.0"
22
+ }
23
+ }
24
+ ```
25
+
26
+ If you do encounter a blocking issue that forces you to use the old WebPack build, please [open an issue](https://github.com/backstage/backstage/issues) explaining the problem. The WebPack build will be removed in a future release.
27
+
28
+ - eda80c7: **BREAKING**: Removed support for `.icon.svg` imports, which have been deprecated since the 1.19 release.
29
+
30
+ ### Patch Changes
31
+
32
+ - 2b8082a: Internal refactor of error handling
33
+ - 8b1bf6e: Deprecated new frontend system config setting `app.experimental.packages` to just `app.packages`. The old config will continue working for the time being, but may be removed in a future release.
34
+ - ead626f: The Node.js transform in `@backstage/cli/config/nodeTransformHooks.mjs` now supports the built-in type stripping in Node.js, which is enabled by default from v22.18.0.
35
+ - a6af768: Allow js files to be processed by the nodeTransform loader
36
+ - Updated dependencies
37
+ - @backstage/cli-node@0.2.14
38
+
39
+ ## 0.34.0-next.2
40
+
41
+ ### Minor Changes
42
+
43
+ - 923ceb2: **BREAKING**: The new app build based on [Rspack](https://rspack.dev/) is now the default, and the `EXPERIMENTAL_RSPACK` flag has been removed. To revert to the old behavior, set the `LEGACY_WEBPACK_BUILD` environment flag and install the following optional dependencies:
44
+
45
+ ```json
46
+ {
47
+ "dependencies": {
48
+ "@module-federation/enhanced": "^0.9.0",
49
+ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
50
+ "esbuild-loader": "^4.0.0",
51
+ "eslint-webpack-plugin": "^4.2.0",
52
+ "fork-ts-checker-webpack-plugin": "^9.0.0",
53
+ "mini-css-extract-plugin": "^2.4.2",
54
+ "terser-webpack-plugin": "^5.1.3",
55
+ "webpack": "^5.96.0",
56
+ "webpack-dev-server": "^5.0.0"
57
+ }
58
+ }
59
+ ```
60
+
61
+ If you do encounter a blocking issue that forces you to use the old WebPack build, please [open an issue](https://github.com/backstage/backstage/issues) explaining the problem. The WebPack build will be removed in a future release.
62
+
63
+ - eda80c7: **BREAKING**: Removed support for `.icon.svg` imports, which have been deprecated since the 1.19 release.
64
+
65
+ ### Patch Changes
66
+
67
+ - 8b1bf6e: Deprecated new frontend system config setting `app.experimental.packages` to just `app.packages`. The old config will continue working for the time being, but may be removed in a future release.
68
+ - ead626f: The Node.js transform in `@backstage/cli/config/nodeTransformHooks.mjs` now supports the built-in type stripping in Node.js, which is enabled by default from v22.18.0.
69
+
3
70
  ## 0.34.0-next.1
4
71
 
5
72
  ### Minor Changes
@@ -65,44 +65,6 @@ declare module '*.yaml' {
65
65
  export default src;
66
66
  }
67
67
 
68
- /**
69
- * @deprecated support for .icon.svg extensions are being removed, inline the SVG elements in a MUI SvgIcon instead.
70
- * @example
71
- * ```tsx
72
- * import SvgIcon from '@material-ui/core/SvgIcon';
73
- *
74
- * const MyIcon = () => (
75
- * <SvgIcon>
76
- * <g>
77
- * <path d="..." />
78
- * </g>
79
- * </SvgIcon>
80
- * )
81
- * ```
82
- */
83
- declare module '*.icon.svg' {
84
- import { ComponentType } from 'react';
85
- import { SvgIconProps } from '@material-ui/core';
86
-
87
- /**
88
- * @deprecated support for .icon.svg extensions are being removed, inline the SVG elements in a MUI SvgIcon instead.
89
- * @example
90
- * ```tsx
91
- * import SvgIcon from '@material-ui/core/SvgIcon';
92
- *
93
- * const MyIcon = () => (
94
- * <SvgIcon>
95
- * <g>
96
- * <path d="..." />
97
- * </g>
98
- * </SvgIcon>
99
- * )
100
- * ```
101
- */
102
- const Icon: ComponentType<SvgIconProps>;
103
- export default Icon;
104
- }
105
-
106
68
  declare module '*.svg' {
107
69
  const src: string;
108
70
  export default src;
@@ -255,6 +255,18 @@ export async function load(url, context, nextLoad) {
255
255
  return nextLoad(url, { ...context, format });
256
256
  }
257
257
 
258
+ // If the Node.js version we're running supports TypeScript, i.e. type
259
+ // stripping, we hand over to the default loader. This is done for all cases
260
+ // except if we're loading a .ts file that's been resolved to CommonJS format.
261
+ // This is because these files aren't actually CommonJS in the Backstage build
262
+ // system, and need to be transformed to CommonJS.
263
+ if (
264
+ format === 'module-typescript' ||
265
+ (format === 'module-commonjs' && ext !== '.ts')
266
+ ) {
267
+ return nextLoad(url, { ...context, format });
268
+ }
269
+
258
270
  const transformed = await transformFile(fileURLToPath(url), {
259
271
  sourceMaps: 'inline',
260
272
  module: {
@@ -1,17 +1,13 @@
1
1
  'use strict';
2
2
 
3
+ var errors = require('@backstage/errors');
3
4
  var chalk = require('chalk');
4
5
 
5
6
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
6
7
 
7
8
  var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
8
9
 
9
- class CustomError extends Error {
10
- get name() {
11
- return this.constructor.name;
12
- }
13
- }
14
- class ExitCodeError extends CustomError {
10
+ class ExitCodeError extends errors.CustomErrorBase {
15
11
  code;
16
12
  constructor(code, command) {
17
13
  super(
@@ -20,26 +16,57 @@ class ExitCodeError extends CustomError {
20
16
  this.code = code;
21
17
  }
22
18
  }
23
- function exitWithError(error) {
24
- if (error instanceof ExitCodeError) {
25
- process.stderr.write(`
26
- ${chalk__default.default.red(error.message)}
19
+ function exit(message, code = 1) {
20
+ process.stderr.write(`
21
+ ${chalk__default.default.red(message)}
27
22
 
28
23
  `);
29
- process.exit(error.code);
30
- } else {
24
+ process.exit(code);
25
+ }
26
+ function exitWithError(error) {
27
+ if (!errors.isError(error)) {
31
28
  process.stderr.write(`
32
- ${chalk__default.default.red(`${error.stack}`)}
29
+ ${chalk__default.default.red(errors.stringifyError(error))}
33
30
 
34
31
  `);
35
32
  process.exit(1);
36
33
  }
37
- }
38
- class NotFoundError extends CustomError {
34
+ switch (error.name) {
35
+ case "InputError":
36
+ return exit(
37
+ error.message,
38
+ 74
39
+ /* input/output error */
40
+ );
41
+ case "NotFoundError":
42
+ return exit(
43
+ error.message,
44
+ 127
45
+ /* command not found */
46
+ );
47
+ case "NotImplementedError":
48
+ return exit(
49
+ error.message,
50
+ 64
51
+ /* command line usage error */
52
+ );
53
+ case "AuthenticationError":
54
+ case "NotAllowedError":
55
+ return exit(
56
+ error.message,
57
+ 77
58
+ /* permissino denied */
59
+ );
60
+ case "ExitCodeError":
61
+ return exit(
62
+ error.message,
63
+ "code" in error && typeof error.code === "number" ? error.code : 1
64
+ );
65
+ default:
66
+ return exit(errors.stringifyError(error), 1);
67
+ }
39
68
  }
40
69
 
41
- exports.CustomError = CustomError;
42
70
  exports.ExitCodeError = ExitCodeError;
43
- exports.NotFoundError = NotFoundError;
44
71
  exports.exitWithError = exitWithError;
45
72
  //# sourceMappingURL=errors.cjs.js.map
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var child_process = require('child_process');
4
- var errors$1 = require('./errors.cjs.js');
4
+ var errors = require('./errors.cjs.js');
5
5
  var util = require('util');
6
- var errors = require('@backstage/errors');
6
+ var errors$1 = require('@backstage/errors');
7
7
 
8
8
  const execFile = util.promisify(child_process.execFile);
9
9
  async function run(name, args = [], options = {}) {
@@ -37,14 +37,14 @@ async function runPlain(cmd, ...args) {
37
37
  const { stdout } = await execFile(cmd, args, { shell: true });
38
38
  return stdout.trim();
39
39
  } catch (error) {
40
- errors.assertError(error);
40
+ errors$1.assertError(error);
41
41
  if ("stderr" in error) {
42
42
  process.stderr.write(error.stderr);
43
43
  }
44
44
  if (typeof error.code === "number") {
45
- throw new errors$1.ExitCodeError(error.code, [cmd, ...args].join(" "));
45
+ throw new errors.ExitCodeError(error.code, [cmd, ...args].join(" "));
46
46
  }
47
- throw new errors.ForwardedError("Unknown execution error", error);
47
+ throw new errors$1.ForwardedError("Unknown execution error", error);
48
48
  }
49
49
  }
50
50
  async function runCheck(cmd, ...args) {
@@ -58,7 +58,7 @@ async function runCheck(cmd, ...args) {
58
58
  async function waitForExit(child, name) {
59
59
  if (typeof child.exitCode === "number") {
60
60
  if (child.exitCode) {
61
- throw new errors$1.ExitCodeError(child.exitCode, name);
61
+ throw new errors.ExitCodeError(child.exitCode, name);
62
62
  }
63
63
  return;
64
64
  }
@@ -66,7 +66,7 @@ async function waitForExit(child, name) {
66
66
  child.once("error", (error) => reject(error));
67
67
  child.once("exit", (code) => {
68
68
  if (code) {
69
- reject(new errors$1.ExitCodeError(code, name));
69
+ reject(new errors.ExitCodeError(code, name));
70
70
  } else {
71
71
  resolve();
72
72
  }
@@ -3,27 +3,27 @@
3
3
  var fs = require('fs-extra');
4
4
  var semver = require('semver');
5
5
  var paths = require('./paths.cjs.js');
6
- var _package$1 = require('../packages/backend-plugin-api/package.json.cjs.js');
7
- var _package$2 = require('../packages/backend-test-utils/package.json.cjs.js');
8
- var _package$3 = require('../packages/catalog-client/package.json.cjs.js');
9
- var _package$4 = require('../packages/cli/package.json.cjs.js');
10
- var _package$5 = require('../packages/config/package.json.cjs.js');
11
- var _package$6 = require('../packages/core-app-api/package.json.cjs.js');
12
- var _package$7 = require('../packages/core-components/package.json.cjs.js');
13
- var _package$8 = require('../packages/core-plugin-api/package.json.cjs.js');
14
- var _package$9 = require('../packages/dev-utils/package.json.cjs.js');
6
+ var _package$j = require('../packages/backend-plugin-api/package.json.cjs.js');
7
+ var _package$i = require('../packages/backend-test-utils/package.json.cjs.js');
8
+ var _package$h = require('../packages/catalog-client/package.json.cjs.js');
9
+ var _package$g = require('../packages/cli/package.json.cjs.js');
10
+ var _package$f = require('../packages/config/package.json.cjs.js');
11
+ var _package$e = require('../packages/core-app-api/package.json.cjs.js');
12
+ var _package$d = require('../packages/core-components/package.json.cjs.js');
13
+ var _package$c = require('../packages/core-plugin-api/package.json.cjs.js');
14
+ var _package$b = require('../packages/dev-utils/package.json.cjs.js');
15
15
  var _package$a = require('../packages/errors/package.json.cjs.js');
16
- var _package$b = require('../packages/frontend-defaults/package.json.cjs.js');
17
- var _package$c = require('../packages/frontend-plugin-api/package.json.cjs.js');
18
- var _package$d = require('../packages/frontend-test-utils/package.json.cjs.js');
19
- var _package$e = require('../packages/test-utils/package.json.cjs.js');
20
- var _package$g = require('../plugins/scaffolder-node/package.json.cjs.js');
21
- var _package$h = require('../plugins/scaffolder-node-test-utils/package.json.cjs.js');
22
- var _package$i = require('../plugins/auth-backend/package.json.cjs.js');
23
- var _package$j = require('../plugins/auth-backend-module-guest-provider/package.json.cjs.js');
24
- var _package$k = require('../plugins/catalog-node/package.json.cjs.js');
25
- var _package$f = require('../packages/theme/package.json.cjs.js');
26
- var _package = require('../packages/backend-defaults/package.json.cjs.js');
16
+ var _package$9 = require('../packages/frontend-defaults/package.json.cjs.js');
17
+ var _package$8 = require('../packages/frontend-plugin-api/package.json.cjs.js');
18
+ var _package$7 = require('../packages/frontend-test-utils/package.json.cjs.js');
19
+ var _package$6 = require('../packages/test-utils/package.json.cjs.js');
20
+ var _package$4 = require('../plugins/scaffolder-node/package.json.cjs.js');
21
+ var _package$3 = require('../plugins/scaffolder-node-test-utils/package.json.cjs.js');
22
+ var _package$2 = require('../plugins/auth-backend/package.json.cjs.js');
23
+ var _package$1 = require('../plugins/auth-backend-module-guest-provider/package.json.cjs.js');
24
+ var _package = require('../plugins/catalog-node/package.json.cjs.js');
25
+ var _package$5 = require('../packages/theme/package.json.cjs.js');
26
+ var _package$k = require('../packages/backend-defaults/package.json.cjs.js');
27
27
 
28
28
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
29
29
 
@@ -31,27 +31,27 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
31
31
  var semver__default = /*#__PURE__*/_interopDefaultCompat(semver);
32
32
 
33
33
  const packageVersions = {
34
- "@backstage/backend-defaults": _package.version,
35
- "@backstage/backend-plugin-api": _package$1.version,
36
- "@backstage/backend-test-utils": _package$2.version,
37
- "@backstage/catalog-client": _package$3.version,
38
- "@backstage/cli": _package$4.version,
39
- "@backstage/config": _package$5.version,
40
- "@backstage/core-app-api": _package$6.version,
41
- "@backstage/core-components": _package$7.version,
42
- "@backstage/core-plugin-api": _package$8.version,
43
- "@backstage/dev-utils": _package$9.version,
34
+ "@backstage/backend-defaults": _package$k.version,
35
+ "@backstage/backend-plugin-api": _package$j.version,
36
+ "@backstage/backend-test-utils": _package$i.version,
37
+ "@backstage/catalog-client": _package$h.version,
38
+ "@backstage/cli": _package$g.version,
39
+ "@backstage/config": _package$f.version,
40
+ "@backstage/core-app-api": _package$e.version,
41
+ "@backstage/core-components": _package$d.version,
42
+ "@backstage/core-plugin-api": _package$c.version,
43
+ "@backstage/dev-utils": _package$b.version,
44
44
  "@backstage/errors": _package$a.version,
45
- "@backstage/frontend-defaults": _package$b.version,
46
- "@backstage/frontend-plugin-api": _package$c.version,
47
- "@backstage/frontend-test-utils": _package$d.version,
48
- "@backstage/test-utils": _package$e.version,
49
- "@backstage/theme": _package$f.version,
50
- "@backstage/plugin-scaffolder-node": _package$g.version,
51
- "@backstage/plugin-scaffolder-node-test-utils": _package$h.version,
52
- "@backstage/plugin-auth-backend": _package$i.version,
53
- "@backstage/plugin-auth-backend-module-guest-provider": _package$j.version,
54
- "@backstage/plugin-catalog-node": _package$k.version
45
+ "@backstage/frontend-defaults": _package$9.version,
46
+ "@backstage/frontend-plugin-api": _package$8.version,
47
+ "@backstage/frontend-test-utils": _package$7.version,
48
+ "@backstage/test-utils": _package$6.version,
49
+ "@backstage/theme": _package$5.version,
50
+ "@backstage/plugin-scaffolder-node": _package$4.version,
51
+ "@backstage/plugin-scaffolder-node-test-utils": _package$3.version,
52
+ "@backstage/plugin-auth-backend": _package$2.version,
53
+ "@backstage/plugin-auth-backend-module-guest-provider": _package$1.version,
54
+ "@backstage/plugin-catalog-node": _package.version
55
55
  };
56
56
  function findVersion() {
57
57
  const pkgContent = fs__default.default.readFileSync(paths.paths.resolveOwn("package.json"), "utf8");
@@ -2,9 +2,9 @@
2
2
 
3
3
  var minimatch = require('minimatch');
4
4
  var getPackages = require('@manypkg/get-packages');
5
- var errors = require('../errors.cjs.js');
6
5
  var yarn = require('./yarn.cjs.js');
7
6
  var run = require('../run.cjs.js');
7
+ var errors = require('@backstage/errors');
8
8
 
9
9
  const DEP_TYPES = [
10
10
  "dependencies",
@@ -15,7 +15,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
15
15
  var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
16
16
 
17
17
  async function command(opts) {
18
- const rspack = process.env.EXPERIMENTAL_RSPACK ? require("@rspack/core") : void 0;
18
+ const webpack = process.env.LEGACY_WEBPACK_BUILD ? require("webpack") : void 0;
19
19
  const role$1 = await role.findRoleFromCommand(opts);
20
20
  if (role$1 === "frontend" || role$1 === "backend") {
21
21
  const configPaths = opts.config.map((arg) => {
@@ -29,7 +29,7 @@ async function command(opts) {
29
29
  targetDir: paths.paths.targetDir,
30
30
  configPaths,
31
31
  writeStats: Boolean(opts.stats),
32
- rspack
32
+ webpack
33
33
  });
34
34
  }
35
35
  return buildBackend.buildBackend({
@@ -50,7 +50,7 @@ async function command(opts) {
50
50
  configPaths: [],
51
51
  writeStats: Boolean(opts.stats),
52
52
  isModuleFederationRemote: true,
53
- rspack
53
+ webpack
54
54
  });
55
55
  }
56
56
  const roleInfo = cliNode.PackageRoles.getRoleInfo(role$1);
@@ -3,20 +3,17 @@
3
3
  var fs = require('fs-extra');
4
4
  var path = require('path');
5
5
  require('yn');
6
- require('webpack');
6
+ require('@rspack/core');
7
7
  require('react-dev-utils/FileSizeReporter');
8
8
  require('react-dev-utils/formatWebpackMessages');
9
- require('eslint-webpack-plugin');
10
- require('fork-ts-checker-webpack-plugin');
9
+ require('eslint-rspack-plugin');
10
+ require('ts-checker-rspack-plugin');
11
11
  require('html-webpack-plugin');
12
- require('@module-federation/enhanced/webpack');
13
12
  require('react-dev-utils/ModuleScopePlugin');
14
- require('@pmmmwh/react-refresh-webpack-plugin');
13
+ require('@module-federation/enhanced/rspack');
15
14
  var paths = require('../../../../../lib/paths.cjs.js');
16
- require('../../../lib/bundler/optimization.cjs.js');
17
15
  require('lodash/pickBy');
18
16
  require('../../../../../lib/run.cjs.js');
19
- require('mini-css-extract-plugin');
20
17
  require('../../../../../lib/version.cjs.js');
21
18
  var hasReactDomClient = require('../../../lib/bundler/hasReactDomClient.cjs.js');
22
19
  require('@manypkg/get-packages');
@@ -16,8 +16,7 @@ var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
16
16
 
17
17
  async function command(opts, cmd) {
18
18
  let packages = await cliNode.PackageGraph.listTargetPackages();
19
- const shouldUseRspack = Boolean(process.env.EXPERIMENTAL_RSPACK);
20
- const rspack = shouldUseRspack ? require("@rspack/core") : void 0;
19
+ const webpack = process.env.LEGACY_WEBPACK_BUILD ? require("webpack") : void 0;
21
20
  if (opts.since) {
22
21
  const graph = cliNode.PackageGraph.fromPackages(packages);
23
22
  const changedPackages = await graph.listChangedPackages({
@@ -86,7 +85,7 @@ async function command(opts, cmd) {
86
85
  targetDir: pkg.dir,
87
86
  configPaths: buildOptions.config ?? [],
88
87
  writeStats: Boolean(buildOptions.stats),
89
- rspack
88
+ webpack
90
89
  });
91
90
  }
92
91
  });
@@ -6,20 +6,17 @@ var bundle = require('./bundler/bundle.cjs.js');
6
6
  var moduleFederation = require('./bundler/moduleFederation.cjs.js');
7
7
  require('chalk');
8
8
  require('react-dev-utils/openBrowser');
9
- require('webpack');
10
- require('webpack-dev-server');
9
+ require('@rspack/core');
10
+ require('@rspack/dev-server');
11
11
  require('../../../lib/paths.cjs.js');
12
12
  var config = require('../../config/lib/config.cjs.js');
13
- require('eslint-webpack-plugin');
14
- require('fork-ts-checker-webpack-plugin');
13
+ require('eslint-rspack-plugin');
14
+ require('ts-checker-rspack-plugin');
15
15
  require('html-webpack-plugin');
16
- require('@module-federation/enhanced/webpack');
17
16
  require('react-dev-utils/ModuleScopePlugin');
18
- require('@pmmmwh/react-refresh-webpack-plugin');
19
- require('./bundler/optimization.cjs.js');
17
+ require('@module-federation/enhanced/rspack');
20
18
  require('lodash/pickBy');
21
19
  require('../../../lib/run.cjs.js');
22
- require('mini-css-extract-plugin');
23
20
  require('../../../lib/version.cjs.js');
24
21
  require('yn');
25
22
  require('@manypkg/get-packages');
@@ -31,7 +28,7 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
31
28
  var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
32
29
 
33
30
  async function buildFrontend(options) {
34
- const { targetDir, writeStats, configPaths, rspack } = options;
31
+ const { targetDir, writeStats, configPaths, webpack } = options;
35
32
  const packageJson = await fs__default.default.readJson(
36
33
  path.resolve(targetDir, "package.json")
37
34
  );
@@ -49,7 +46,7 @@ async function buildFrontend(options) {
49
46
  args: configPaths,
50
47
  fromPackage: packageJson.name
51
48
  }),
52
- rspack
49
+ webpack
53
50
  });
54
51
  }
55
52
 
@@ -7,14 +7,12 @@ var commonjs = require('@rollup/plugin-commonjs');
7
7
  var resolve = require('@rollup/plugin-node-resolve');
8
8
  var postcss = require('rollup-plugin-postcss');
9
9
  var esbuild = require('rollup-plugin-esbuild');
10
- var svgr = require('@svgr/rollup');
11
10
  var dts = require('rollup-plugin-dts');
12
11
  var json = require('@rollup/plugin-json');
13
12
  var yaml = require('@rollup/plugin-yaml');
14
13
  var plugins = require('./plugins.cjs.js');
15
14
  var types = require('./types.cjs.js');
16
15
  var paths = require('../../../../lib/paths.cjs.js');
17
- var svgrTemplate = require('../../../../lib/svgrTemplate.cjs.js');
18
16
  var entryPoints = require('../../../../lib/entryPoints.cjs.js');
19
17
 
20
18
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -25,7 +23,6 @@ var commonjs__default = /*#__PURE__*/_interopDefaultCompat(commonjs);
25
23
  var resolve__default = /*#__PURE__*/_interopDefaultCompat(resolve);
26
24
  var postcss__default = /*#__PURE__*/_interopDefaultCompat(postcss);
27
25
  var esbuild__default = /*#__PURE__*/_interopDefaultCompat(esbuild);
28
- var svgr__default = /*#__PURE__*/_interopDefaultCompat(svgr);
29
26
  var dts__default = /*#__PURE__*/_interopDefaultCompat(dts);
30
27
  var json__default = /*#__PURE__*/_interopDefaultCompat(json);
31
28
  var yaml__default = /*#__PURE__*/_interopDefaultCompat(yaml);
@@ -201,10 +198,6 @@ async function makeRollupConfigs(options) {
201
198
  }),
202
199
  json__default.default(),
203
200
  yaml__default.default(),
204
- svgr__default.default({
205
- include: /\.icon\.svg$/,
206
- template: svgrTemplate.svgrTemplate
207
- }),
208
201
  esbuild__default.default({
209
202
  target: "ES2022",
210
203
  minify: options.minify
@@ -3,7 +3,7 @@
3
3
  var yn = require('yn');
4
4
  var fs = require('fs-extra');
5
5
  var path = require('path');
6
- var webpack = require('webpack');
6
+ var core = require('@rspack/core');
7
7
  var FileSizeReporter = require('react-dev-utils/FileSizeReporter');
8
8
  var formatWebpackMessages = require('react-dev-utils/formatWebpackMessages');
9
9
  var config = require('./config.cjs.js');
@@ -15,7 +15,6 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
15
15
 
16
16
  var yn__default = /*#__PURE__*/_interopDefaultCompat(yn);
17
17
  var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
18
- var webpack__default = /*#__PURE__*/_interopDefaultCompat(webpack);
19
18
  var formatWebpackMessages__default = /*#__PURE__*/_interopDefaultCompat(formatWebpackMessages);
20
19
  var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
21
20
 
@@ -26,7 +25,7 @@ function applyContextToError(error, moduleName) {
26
25
  ${error}`;
27
26
  }
28
27
  async function buildBundle(options) {
29
- const { statsJsonEnabled, schema: configSchema, rspack } = options;
28
+ const { statsJsonEnabled, schema: configSchema, webpack } = options;
30
29
  const paths$1 = paths.resolveBundlingPaths(options);
31
30
  const publicPaths = await paths.resolveOptionalBundlingPaths({
32
31
  targetDir: options.targetDir,
@@ -91,12 +90,10 @@ async function buildBundle(options) {
91
90
  { spaces: 2 }
92
91
  );
93
92
  }
94
- if (rspack) {
95
- console.log(
96
- chalk__default.default.yellow(`\u26A0\uFE0F WARNING: Using experimental RSPack bundler.`)
97
- );
93
+ if (webpack) {
94
+ console.log(chalk__default.default.yellow(`\u26A0\uFE0F WARNING: Using legacy WebPack bundler`));
98
95
  }
99
- const { stats } = await build(configs, isCi, rspack);
96
+ const { stats } = await build(configs, isCi, webpack);
100
97
  if (!stats) {
101
98
  throw new Error("No stats returned");
102
99
  }
@@ -124,29 +121,27 @@ async function buildBundle(options) {
124
121
  );
125
122
  }
126
123
  }
127
- async function build(configs, isCi, rspack) {
128
- const bundler = rspack ?? webpack__default.default;
129
- const stats = await new Promise(
130
- (resolve, reject) => {
131
- bundler(configs, (err, buildStats) => {
132
- if (err) {
133
- if (err.message) {
134
- const { errors: errors2 } = formatWebpackMessages__default.default({
135
- errors: [err.message],
136
- warnings: new Array(),
137
- _showErrors: true,
138
- _showWarnings: true
139
- });
140
- throw new Error(errors2[0]);
141
- } else {
142
- reject(err);
143
- }
124
+ async function build(configs, isCi, webpack) {
125
+ const bundler = webpack ?? core.rspack;
126
+ const stats = await new Promise((resolve, reject) => {
127
+ bundler(configs, (err, buildStats) => {
128
+ if (err) {
129
+ if (err.message) {
130
+ const { errors: errors2 } = formatWebpackMessages__default.default({
131
+ errors: [err.message],
132
+ warnings: new Array(),
133
+ _showErrors: true,
134
+ _showWarnings: true
135
+ });
136
+ throw new Error(errors2[0]);
144
137
  } else {
145
- resolve(buildStats);
138
+ reject(err);
146
139
  }
147
- });
148
- }
149
- );
140
+ } else {
141
+ resolve(buildStats);
142
+ }
143
+ });
144
+ });
150
145
  if (!stats) {
151
146
  throw new Error("Failed to compile: No stats provided");
152
147
  }