@rspack/cli 0.0.0-0074001a71-20230224065505

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.
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022-present Bytedance, Inc. and its affiliates.
4
+
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,16 @@
1
+ <picture>
2
+ <source media="(prefers-color-scheme: dark)" srcset="https://lf3-static.bytednsdoc.com/obj/eden-cn/rjhwzy/ljhwZthlaukjlkulzlp/rspack-banner-1610-dark.png">
3
+ <img alt="Rspack Banner" src="https://lf3-static.bytednsdoc.com/obj/eden-cn/rjhwzy/ljhwZthlaukjlkulzlp/rspack-banner-1610.png">
4
+ </picture>
5
+
6
+ # @rspack/cli
7
+
8
+ Command-line interface for rspack.
9
+
10
+ ## Documentation
11
+
12
+ See [https://rspack.org](https://rspack.org) for details.
13
+
14
+ ## License
15
+
16
+ Rspack is [MIT licensed](https://github.com/modern-js-dev/rspack/blob/main/LICENSE).
package/bin/rspack ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ try {
3
+ require("source-map-support").install({
4
+ handleUncaughtExceptions: false
5
+ });
6
+ } catch (err) {}
7
+ const runCLI = require("../dist/bootstrap").runCLI;
8
+ runCLI(process.argv);
@@ -0,0 +1,2 @@
1
+ export declare function runCLI(argv: string[]): Promise<void>;
2
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAEA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,iBAG1C"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runCLI = void 0;
4
+ const rspack_cli_1 = require("./rspack-cli");
5
+ async function runCLI(argv) {
6
+ const cli = new rspack_cli_1.RspackCLI();
7
+ await cli.run(argv);
8
+ }
9
+ exports.runCLI = runCLI;
10
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAElC,KAAK,UAAU,MAAM,CAAC,IAAc;IAC1C,MAAM,GAAG,GAAG,IAAI,sBAAS,EAAE,CAAC;IAC5B,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAHD,wBAGC"}
@@ -0,0 +1,6 @@
1
+ import type { RspackCLI } from "../rspack-cli";
2
+ import { RspackCommand } from "../types";
3
+ export declare class BuildCommand implements RspackCommand {
4
+ apply(cli: RspackCLI): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMzC,qBAAa,YAAa,YAAW,aAAa;IAC3C,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAuF1C"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.BuildCommand = void 0;
27
+ const fs = __importStar(require("fs"));
28
+ const options_1 = require("../utils/options");
29
+ class BuildCommand {
30
+ async apply(cli) {
31
+ cli.program.command(["build [entry..]", "$0", "bundle", "b"], "run the rspack build", yargs => (0, options_1.commonOptions)(yargs).options({
32
+ analyze: {
33
+ type: "boolean",
34
+ default: false,
35
+ describe: "analyze"
36
+ },
37
+ json: {
38
+ describe: "emit stats json"
39
+ }
40
+ }), async (options) => {
41
+ const logger = cli.getLogger();
42
+ let createJsonStringifyStream;
43
+ if (options.json) {
44
+ const jsonExt = await Promise.resolve().then(() => __importStar(require("@discoveryjs/json-ext")));
45
+ createJsonStringifyStream = jsonExt.stringifyStream;
46
+ }
47
+ const callback = (error, stats) => {
48
+ if (error) {
49
+ logger.error(error);
50
+ process.exit(2);
51
+ }
52
+ if (stats && stats.hasErrors()) {
53
+ process.exitCode = 1;
54
+ }
55
+ if (!compiler || !stats) {
56
+ return;
57
+ }
58
+ const statsOptions = cli.isMultipleCompiler(compiler)
59
+ ? {
60
+ children: compiler.compilers.map(compiler => compiler.options ? compiler.options.stats : undefined)
61
+ }
62
+ : compiler.options
63
+ ? compiler.options.stats
64
+ : undefined;
65
+ if (options.json && createJsonStringifyStream) {
66
+ const handleWriteError = error => {
67
+ logger.error(error);
68
+ process.exit(2);
69
+ };
70
+ if (options.json === true) {
71
+ createJsonStringifyStream(stats.toJson(statsOptions))
72
+ .on("error", handleWriteError)
73
+ .pipe(process.stdout)
74
+ .on("error", handleWriteError)
75
+ .on("close", () => process.stdout.write("\n"));
76
+ }
77
+ else if (typeof options.json === "string") {
78
+ createJsonStringifyStream(stats.toJson(statsOptions))
79
+ .on("error", handleWriteError)
80
+ .pipe(fs.createWriteStream(options.json))
81
+ .on("error", handleWriteError)
82
+ // Use stderr to logging
83
+ .on("close", () => {
84
+ process.stderr.write(`[rspack-cli] ${cli.colors.green(`stats are successfully stored as json to ${options.json}`)}\n`);
85
+ });
86
+ }
87
+ }
88
+ else {
89
+ const printedStats = stats.toString(statsOptions);
90
+ // Avoid extra empty line when `stats: 'none'`
91
+ if (printedStats) {
92
+ logger.raw(printedStats);
93
+ }
94
+ }
95
+ };
96
+ console.time("build");
97
+ let rspackOptions = { ...options, argv: { ...options } };
98
+ const compiler = await cli.createCompiler(rspackOptions, "production");
99
+ compiler.run((err, Stats) => {
100
+ callback(err, Stats);
101
+ console.timeEnd("build");
102
+ });
103
+ });
104
+ }
105
+ }
106
+ exports.BuildCommand = BuildCommand;
107
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { RspackCLI } from "../rspack-cli";
2
+ import { RspackCommand } from "../types";
3
+ export declare class ServeCommand implements RspackCommand {
4
+ apply(cli: RspackCLI): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,qBAAa,YAAa,YAAW,aAAa;IAC3C,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CA2E1C"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServeCommand = void 0;
4
+ const dev_server_1 = require("@rspack/dev-server");
5
+ const options_1 = require("../utils/options");
6
+ class ServeCommand {
7
+ async apply(cli) {
8
+ cli.program.command(["serve [entry..]", "server", "s"], "run the rspack dev server.", options_1.commonOptions, async (options) => {
9
+ var _a, _b, _c, _d;
10
+ var _e, _f;
11
+ const rspackOptions = {
12
+ ...options,
13
+ argv: {
14
+ ...options
15
+ }
16
+ };
17
+ const compiler = await cli.createCompiler(rspackOptions, "development");
18
+ const compilers = cli.isMultipleCompiler(compiler)
19
+ ? compiler.compilers
20
+ : [compiler];
21
+ const possibleCompilers = compilers.filter((compiler) => compiler.options.devServer);
22
+ const usedPorts = [];
23
+ const servers = [];
24
+ /**
25
+ * Webpack uses an Array of compilerForDevServer,
26
+ * however according to it's doc https://webpack.js.org/configuration/dev-server/#devserverhot
27
+ * It should use only the first one
28
+ *
29
+ * Choose the one for configure devServer
30
+ */
31
+ const compilerForDevServer = possibleCompilers.length > 0 ? possibleCompilers[0] : compilers[0];
32
+ /**
33
+ * Rspack relies on devServer.hot to enable HMR
34
+ */
35
+ for (const compiler of compilers) {
36
+ const devServer = ((_a = (_e = compiler.options).devServer) !== null && _a !== void 0 ? _a : (_e.devServer = {}));
37
+ (_b = devServer.hot) !== null && _b !== void 0 ? _b : (devServer.hot = true);
38
+ }
39
+ const result = ((_c = (_f = compilerForDevServer.options).devServer) !== null && _c !== void 0 ? _c : (_f.devServer = {}));
40
+ /**
41
+ * Enable this to tell Rspack that we need to enable React Refresh by default
42
+ */
43
+ (_d = result.hot) !== null && _d !== void 0 ? _d : (result.hot = true);
44
+ const devServerOptions = result;
45
+ if (devServerOptions.port) {
46
+ const portNumber = Number(devServerOptions.port);
47
+ if (usedPorts.find(port => portNumber === port)) {
48
+ throw new Error("Unique ports must be specified for each devServer option in your rspack configuration. Alternatively, run only 1 devServer config using the --config-name flag to specify your desired config.");
49
+ }
50
+ usedPorts.push(portNumber);
51
+ }
52
+ try {
53
+ const server = new dev_server_1.RspackDevServer(devServerOptions, compiler);
54
+ await server.start();
55
+ servers.push(server);
56
+ }
57
+ catch (error) {
58
+ const logger = cli.getLogger();
59
+ logger.error(error);
60
+ process.exit(2);
61
+ }
62
+ });
63
+ }
64
+ }
65
+ exports.ServeCommand = ServeCommand;
66
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":";;;AACA,mDAAqD;AAErD,8CAAiD;AAEjD,MAAa,YAAY;IACxB,KAAK,CAAC,KAAK,CAAC,GAAc;QACzB,GAAG,CAAC,OAAO,CAAC,OAAO,CAClB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,GAAG,CAAC,EAClC,4BAA4B,EAC5B,uBAAa,EACb,KAAK,EAAC,OAAO,EAAC,EAAE;;;YACf,MAAM,aAAa,GAAG;gBACrB,GAAG,OAAO;gBACV,IAAI,EAAE;oBACL,GAAG,OAAO;iBACV;aACD,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACxE,MAAM,SAAS,GAAG,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC;gBACjD,CAAC,CAAC,QAAQ,CAAC,SAAS;gBACpB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACd,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CACzC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAClD,CAAC;YAEF,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAsB,EAAE,CAAC;YAEtC;;;;;;eAMG;YACH,MAAM,oBAAoB,GACzB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAEpE;;eAEG;YACH,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBACjC,MAAM,SAAS,GAAG,aAAC,QAAQ,CAAC,OAAO,EAAC,SAAS,uCAAT,SAAS,GAAK,EAAE,EAAC,CAAC;gBACtD,MAAA,SAAS,CAAC,GAAG,oCAAb,SAAS,CAAC,GAAG,GAAK,IAAI,EAAC;aACvB;YAED,MAAM,MAAM,GAAG,aAAC,oBAAoB,CAAC,OAAO,EAAC,SAAS,uCAAT,SAAS,GAAK,EAAE,EAAC,CAAC;YAC/D;;eAEG;YACH,MAAA,MAAM,CAAC,GAAG,oCAAV,MAAM,CAAC,GAAG,GAAK,IAAI,EAAC;YAEpB,MAAM,gBAAgB,GAAG,MAAmB,CAAC;YAC7C,IAAI,gBAAgB,CAAC,IAAI,EAAE;gBAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAEjD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE;oBAChD,MAAM,IAAI,KAAK,CACd,gMAAgM,CAChM,CAAC;iBACF;gBAED,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC3B;YAED,IAAI;gBACH,MAAM,MAAM,GAAG,IAAI,4BAAe,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;gBAE/D,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBAErB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACrB;YAAC,OAAO,KAAK,EAAE;gBACf,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAEpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB;QACF,CAAC,CACD,CAAC;IACH,CAAC;CACD;AA5ED,oCA4EC"}
@@ -0,0 +1,3 @@
1
+ export * from "./types";
2
+ export { RspackCLI } from "./rspack-cli";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.RspackCLI = void 0;
18
+ __exportStar(require("./types"), exports);
19
+ var rspack_cli_1 = require("./rspack-cli");
20
+ Object.defineProperty(exports, "RspackCLI", { enumerable: true, get: function () { return rspack_cli_1.RspackCLI; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,0CAAwB;AACxB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA"}
@@ -0,0 +1,19 @@
1
+ import yargs from "yargs";
2
+ import { RspackCLIColors, RspackCLILogger, RspackCLIOptions } from "./types";
3
+ import { RspackOptions, MultiCompiler, Compiler, MultiRspackOptions } from "@rspack/core";
4
+ declare type RspackEnv = "development" | "production";
5
+ export declare class RspackCLI {
6
+ colors: RspackCLIColors;
7
+ program: yargs.Argv<{}>;
8
+ constructor();
9
+ createCompiler(options: RspackCLIOptions, rspackEnv: RspackEnv): Promise<Compiler | MultiCompiler>;
10
+ createColors(useColor?: boolean): RspackCLIColors;
11
+ getLogger(): RspackCLILogger;
12
+ run(argv: string[]): Promise<void>;
13
+ registerCommands(): Promise<void>;
14
+ buildConfig(item: RspackOptions | MultiRspackOptions, options: RspackCLIOptions, rspackEnv: RspackEnv): Promise<RspackOptions | MultiRspackOptions>;
15
+ loadConfig(options: RspackCLIOptions): Promise<RspackOptions | MultiRspackOptions>;
16
+ isMultipleCompiler(compiler: Compiler | MultiCompiler): compiler is MultiCompiler;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=rspack-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rspack-cli.d.ts","sourceRoot":"","sources":["../src/rspack-cli.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG7E,OAAO,EACN,aAAa,EAIb,aAAa,EACb,QAAQ,EAER,kBAAkB,EAClB,MAAM,cAAc,CAAC;AAOtB,aAAK,SAAS,GAAG,aAAa,GAAG,YAAY,CAAC;AAC9C,qBAAa,SAAS;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;IAKlB,cAAc,CACnB,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC;IAYpC,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,eAAe;IAgBjD,SAAS,IAAI,eAAe;IAWtB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE;IAOlB,gBAAgB;IAMhB,WAAW,CAChB,IAAI,EAAE,aAAa,GAAG,kBAAkB,EACxC,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,aAAa,GAAG,kBAAkB,CAAC;IAoFxC,UAAU,CACf,OAAO,EAAE,gBAAgB,GACvB,OAAO,CAAC,aAAa,GAAG,kBAAkB,CAAC;IA+E9C,kBAAkB,CACjB,QAAQ,EAAE,QAAQ,GAAG,aAAa,GAChC,QAAQ,IAAI,aAAa;CAG5B"}
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.RspackCLI = void 0;
30
+ const helpers_1 = require("yargs/helpers");
31
+ const yargs_1 = __importDefault(require("yargs"));
32
+ const util_1 = __importDefault(require("util"));
33
+ const path_1 = __importDefault(require("path"));
34
+ const fs_1 = __importDefault(require("fs"));
35
+ const build_1 = require("./commands/build");
36
+ const serve_1 = require("./commands/serve");
37
+ const core_1 = require("@rspack/core");
38
+ const options_1 = require("./utils/options");
39
+ const defaultConfig = "rspack.config.js";
40
+ const defaultEntry = "src/index.js";
41
+ class RspackCLI {
42
+ constructor() {
43
+ this.colors = this.createColors();
44
+ this.program = (0, yargs_1.default)();
45
+ }
46
+ async createCompiler(options, rspackEnv) {
47
+ if (typeof options.nodeEnv === "string") {
48
+ process.env.NODE_ENV = options.nodeEnv;
49
+ }
50
+ else {
51
+ process.env.NODE_ENV = rspackEnv;
52
+ }
53
+ let config = await this.loadConfig(options);
54
+ config = await this.buildConfig(config, options, rspackEnv);
55
+ // @ts-ignore
56
+ const compiler = (0, core_1.rspack)(config);
57
+ return compiler;
58
+ }
59
+ createColors(useColor) {
60
+ const { createColors, isColorSupported } = require("colorette");
61
+ let shouldUseColor;
62
+ if (useColor) {
63
+ shouldUseColor = useColor;
64
+ }
65
+ else {
66
+ shouldUseColor = isColorSupported;
67
+ }
68
+ return {
69
+ ...createColors({ useColor: shouldUseColor }),
70
+ isColorSupported: shouldUseColor
71
+ };
72
+ }
73
+ getLogger() {
74
+ return {
75
+ error: val => console.error(`[rspack-cli] ${this.colors.red(util_1.default.format(val))}`),
76
+ warn: val => console.warn(`[rspack-cli] ${this.colors.yellow(val)}`),
77
+ info: val => console.info(`[rspack-cli] ${this.colors.cyan(val)}`),
78
+ success: val => console.log(`[rspack-cli] ${this.colors.green(val)}`),
79
+ log: val => console.log(`[rspack-cli] ${val}`),
80
+ raw: val => console.log(val)
81
+ };
82
+ }
83
+ async run(argv) {
84
+ this.program.usage("[options]");
85
+ this.program.scriptName("rspack");
86
+ this.program.middleware(options_1.normalizeEnv);
87
+ this.registerCommands();
88
+ await this.program.parseAsync((0, helpers_1.hideBin)(argv));
89
+ }
90
+ async registerCommands() {
91
+ const builtinCommands = [new build_1.BuildCommand(), new serve_1.ServeCommand()];
92
+ for (const command of builtinCommands) {
93
+ command.apply(this);
94
+ }
95
+ }
96
+ async buildConfig(item, options, rspackEnv) {
97
+ const internalBuildConfig = async (item) => {
98
+ var _a;
99
+ const isEnvProduction = rspackEnv === "production";
100
+ const isEnvDevelopment = rspackEnv === "development";
101
+ if (options.analyze) {
102
+ const { BundleAnalyzerPlugin } = await Promise.resolve().then(() => __importStar(require("webpack-bundle-analyzer")));
103
+ ((_a = item.plugins) !== null && _a !== void 0 ? _a : (item.plugins = [])).push({
104
+ name: "rspack-bundle-analyzer",
105
+ apply(compiler) {
106
+ new BundleAnalyzerPlugin({
107
+ generateStatsFile: true
108
+ }).apply(compiler);
109
+ }
110
+ });
111
+ }
112
+ // auto set default mode if user config don't set it
113
+ if (!item.mode) {
114
+ item.mode = rspackEnv !== null && rspackEnv !== void 0 ? rspackEnv : "none";
115
+ }
116
+ // user parameters always has highest priority than default mode and config mode
117
+ if (options.mode) {
118
+ item.mode = options.mode;
119
+ }
120
+ // false is also a valid value for sourcemap, so don't override it
121
+ if (typeof item.devtool === "undefined") {
122
+ item.devtool = isEnvProduction
123
+ ? "source-map"
124
+ : "cheap-module-source-map";
125
+ }
126
+ item.builtins = item.builtins || {};
127
+ // no emit assets when run dev server, it will use node_binding api get file content
128
+ if (typeof item.builtins.noEmitAssets === "undefined") {
129
+ item.builtins.noEmitAssets = false; // @FIXME memory fs currently cause problems for outputFileSystem, so we disable it temporarily
130
+ }
131
+ // Tells webpack to set process.env.NODE_ENV to a given string value.
132
+ // optimization.nodeEnv uses DefinePlugin unless set to false.
133
+ // optimization.nodeEnv defaults to mode if set, else falls back to 'production'.
134
+ // See doc: https://webpack.js.org/configuration/optimization/#optimizationnodeenv
135
+ // See source: https://github.com/webpack/webpack/blob/8241da7f1e75c5581ba535d127fa66aeb9eb2ac8/lib/WebpackOptionsApply.js#L563
136
+ // When mode is set to 'none', optimization.nodeEnv defaults to false.
137
+ if (item.mode !== "none") {
138
+ item.builtins.define = {
139
+ // User defined `process.env.NODE_ENV` always has highest priority than default define
140
+ "process.env.NODE_ENV": JSON.stringify(item.mode),
141
+ ...item.builtins.define
142
+ };
143
+ }
144
+ if (typeof item.stats === "undefined") {
145
+ item.stats = { preset: "normal" };
146
+ }
147
+ else if (typeof item.stats === "boolean") {
148
+ item.stats = item.stats ? { preset: "normal" } : { preset: "none" };
149
+ }
150
+ else if (typeof item.stats === "string") {
151
+ item.stats = {
152
+ preset: item.stats
153
+ };
154
+ }
155
+ if (this.colors.isColorSupported &&
156
+ typeof item.stats.colors === "undefined") {
157
+ item.stats.colors = true;
158
+ }
159
+ return item;
160
+ };
161
+ if (Array.isArray(item)) {
162
+ return Promise.all(item.map(internalBuildConfig));
163
+ }
164
+ else {
165
+ return internalBuildConfig(item);
166
+ }
167
+ }
168
+ async loadConfig(options) {
169
+ var _a;
170
+ let loadedConfig;
171
+ // if we pass config paras
172
+ if (options.config) {
173
+ const resolvedConfigPath = path_1.default.resolve(process.cwd(), options.config);
174
+ if (!fs_1.default.existsSync(resolvedConfigPath)) {
175
+ throw new Error(`config file "${resolvedConfigPath}" not exists`);
176
+ }
177
+ loadedConfig = require(resolvedConfigPath);
178
+ }
179
+ else {
180
+ let defaultConfigPath = path_1.default.resolve(process.cwd(), defaultConfig);
181
+ if (fs_1.default.existsSync(defaultConfigPath)) {
182
+ loadedConfig = require(defaultConfigPath);
183
+ }
184
+ else {
185
+ let entry = {};
186
+ if (options.entry) {
187
+ entry = {
188
+ main: options.entry.map(x => path_1.default.resolve(process.cwd(), x))[0] // Fix me when entry supports array
189
+ };
190
+ }
191
+ else {
192
+ entry = {
193
+ main: path_1.default.resolve(process.cwd(), defaultEntry)
194
+ };
195
+ }
196
+ loadedConfig = {
197
+ entry
198
+ };
199
+ }
200
+ }
201
+ if (options.configName) {
202
+ const notFoundConfigNames = [];
203
+ // @ts-ignore
204
+ loadedConfig = options.configName.map((configName) => {
205
+ let found;
206
+ if (Array.isArray(loadedConfig)) {
207
+ found = loadedConfig.find(options => options.name === configName);
208
+ }
209
+ else {
210
+ found =
211
+ loadedConfig.name === configName
212
+ ? loadedConfig
213
+ : undefined;
214
+ }
215
+ if (!found) {
216
+ notFoundConfigNames.push(configName);
217
+ }
218
+ return found;
219
+ });
220
+ if (notFoundConfigNames.length > 0) {
221
+ this.getLogger().error(notFoundConfigNames
222
+ .map(configName => `Configuration with the name "${configName}" was not found.`)
223
+ .join(" "));
224
+ process.exit(2);
225
+ }
226
+ }
227
+ if (typeof loadedConfig === "function") {
228
+ loadedConfig = loadedConfig((_a = options.argv) === null || _a === void 0 ? void 0 : _a.env, options.argv);
229
+ }
230
+ return loadedConfig;
231
+ }
232
+ isMultipleCompiler(compiler) {
233
+ return Boolean(compiler.compilers);
234
+ }
235
+ }
236
+ exports.RspackCLI = RspackCLI;
237
+ //# sourceMappingURL=rspack-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rspack-cli.js","sourceRoot":"","sources":["../src/rspack-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { Colorette } from "colorette";
2
+ import { RspackCLI } from "./rspack-cli";
3
+ import { WebpackOptionsNormalized } from "webpack";
4
+ export type { Configuration } from "@rspack/core";
5
+ import { Configuration as DevServerConfig } from "webpack-dev-server";
6
+ export interface IRspackCLI {
7
+ runRspack(): Promise<void>;
8
+ }
9
+ export declare type LogHandler = (value: any) => void;
10
+ export interface RspackCLIColors extends Colorette {
11
+ isColorSupported: boolean;
12
+ }
13
+ export interface RspackCLILogger {
14
+ error: LogHandler;
15
+ warn: LogHandler;
16
+ info: LogHandler;
17
+ success: LogHandler;
18
+ log: LogHandler;
19
+ raw: LogHandler;
20
+ }
21
+ export interface RspackCLIOptions {
22
+ entry?: string[];
23
+ config?: string;
24
+ devtool?: boolean;
25
+ mode?: string;
26
+ watch?: boolean;
27
+ analyze?: boolean;
28
+ argv?: Record<string, any>;
29
+ env?: Record<string, any>;
30
+ nodeEnv: string;
31
+ configName?: string[];
32
+ }
33
+ export interface RspackCommand {
34
+ apply(cli: RspackCLI): Promise<void>;
35
+ }
36
+ export declare type RspackDevServerOptions = DevServerConfig & WebpackOptionsNormalized;
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,MAAM,WAAW,UAAU;IAC1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AACD,oBAAY,UAAU,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;AAC9C,MAAM,WAAW,eAAgB,SAAQ,SAAS;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC1B;AACD,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,UAAU,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AACD,oBAAY,sBAAsB,GAAG,eAAe,GAAG,wBAAwB,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import yargs from "yargs";
2
+ export declare const commonOptions: (yargs: yargs.Argv<{}>) => yargs.Argv<yargs.Omit<{
3
+ entry: string[];
4
+ }, "config" | "mode" | "watch" | "env" | "node-env" | "devtool" | "configName"> & yargs.InferredOptionTypes<{
5
+ config: {
6
+ g: boolean;
7
+ type: "string";
8
+ describe: string;
9
+ alias: string;
10
+ };
11
+ mode: {
12
+ type: "string";
13
+ describe: string;
14
+ };
15
+ watch: {
16
+ type: "boolean";
17
+ default: boolean;
18
+ describe: string;
19
+ };
20
+ env: {
21
+ type: "array";
22
+ string: true;
23
+ describe: string;
24
+ };
25
+ "node-env": {
26
+ string: true;
27
+ describe: string;
28
+ };
29
+ devtool: {
30
+ type: "boolean";
31
+ default: boolean;
32
+ describe: string;
33
+ };
34
+ configName: {
35
+ type: "array";
36
+ string: true;
37
+ describe: string;
38
+ };
39
+ }>>;
40
+ export declare function normalizeEnv(argv: any): void;
41
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/utils/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCzB,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,KAAA,QAuChC"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeEnv = exports.commonOptions = void 0;
4
+ const commonOptions = (yargs) => {
5
+ return yargs
6
+ .positional("entry", {
7
+ type: "string",
8
+ array: true,
9
+ describe: "entry"
10
+ })
11
+ .options({
12
+ config: {
13
+ g: true,
14
+ type: "string",
15
+ describe: "config file",
16
+ alias: "c"
17
+ },
18
+ mode: { type: "string", describe: "mode" },
19
+ watch: {
20
+ type: "boolean",
21
+ default: false,
22
+ describe: "watch"
23
+ },
24
+ env: {
25
+ type: "array",
26
+ string: true,
27
+ describe: "env passed to config function"
28
+ },
29
+ "node-env": {
30
+ string: true,
31
+ describe: "sets process.env.NODE_ENV to be specified value"
32
+ },
33
+ devtool: {
34
+ type: "boolean",
35
+ default: false,
36
+ describe: "devtool"
37
+ },
38
+ configName: {
39
+ type: "array",
40
+ string: true,
41
+ describe: "Name of the configuration to use."
42
+ }
43
+ });
44
+ };
45
+ exports.commonOptions = commonOptions;
46
+ function normalizeEnv(argv) {
47
+ var _a;
48
+ function parseValue(previous, value) {
49
+ const [allKeys, val] = value.split(/=(.+)/, 2);
50
+ const splitKeys = allKeys.split(/\.(?!$)/);
51
+ let prevRef = previous;
52
+ splitKeys.forEach((someKey, index) => {
53
+ // https://github.com/webpack/webpack-cli/issues/3284
54
+ if (someKey.endsWith("=")) {
55
+ // remove '=' from key
56
+ someKey = someKey.slice(0, -1);
57
+ prevRef[someKey] = undefined;
58
+ return;
59
+ }
60
+ if (!prevRef[someKey]) {
61
+ prevRef[someKey] = {};
62
+ }
63
+ if (typeof prevRef[someKey] === "string") {
64
+ prevRef[someKey] = {};
65
+ }
66
+ if (index === splitKeys.length - 1) {
67
+ if (typeof val === "string") {
68
+ prevRef[someKey] = val;
69
+ }
70
+ else {
71
+ prevRef[someKey] = true;
72
+ }
73
+ }
74
+ prevRef = prevRef[someKey];
75
+ });
76
+ return previous;
77
+ }
78
+ const envObj = ((_a = argv.env) !== null && _a !== void 0 ? _a : []).reduce(parseValue, {});
79
+ argv.env = envObj;
80
+ }
81
+ exports.normalizeEnv = normalizeEnv;
82
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/utils/options.ts"],"names":[],"mappings":";;;AACO,MAAM,aAAa,GAAG,CAAC,KAAqB,EAAE,EAAE;IACtD,OAAO,KAAK;SACV,UAAU,CAAC,OAAO,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,OAAO;KACjB,CAAC;SACD,OAAO,CAAC;QACR,MAAM,EAAE;YACP,CAAC,EAAE,IAAI;YACP,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,GAAG;SACV;QACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC1C,KAAK,EAAE;YACN,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,OAAO;SACjB;QACD,GAAG,EAAE;YACJ,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,+BAA+B;SACzC;QACD,UAAU,EAAE;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,iDAAiD;SAC3D;QACD,OAAO,EAAE;YACR,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,SAAS;SACnB;QACD,UAAU,EAAE;YACX,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,mCAAmC;SAC7C;KACD,CAAC,CAAC;AACL,CAAC,CAAC;AAxCW,QAAA,aAAa,iBAwCxB;AAEF,SAAgB,YAAY,CAAC,IAAI;;IAChC,SAAS,UAAU,CAAC,QAAQ,EAAE,KAAK;QAClC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE3C,IAAI,OAAO,GAAG,QAAQ,CAAC;QAEvB,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACpC,qDAAqD;YACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC1B,sBAAsB;gBACtB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;gBAC7B,OAAO;aACP;YAED,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACtB,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;aACtB;YAED,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;gBACzC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;aACtB;YAED,IAAI,KAAK,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;oBAC5B,OAAO,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;iBACvB;qBAAM;oBACN,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;iBACxB;aACD;YAED,OAAO,GAAG,OAAO,CAAC,OAAO,CAA8C,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAC,IAAI,CAAC,GAAgB,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;AACnB,CAAC;AAvCD,oCAuCC"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@rspack/cli",
3
+ "version": "0.0.0-0074001a71-20230224065505",
4
+ "license": "MIT",
5
+ "description": "CLI for rspack",
6
+ "bin": {
7
+ "rspack": "./bin/rspack"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "files": [
12
+ "bin",
13
+ "dist"
14
+ ],
15
+ "homepage": "https://rspack.org",
16
+ "bugs": "https://github.com/modern-js-dev/rspack/issues",
17
+ "repository": "modern-js-dev/rspack",
18
+ "devDependencies": {
19
+ "@types/webpack-bundle-analyzer": "^4.6.0",
20
+ "concat-stream": "^2.0.0",
21
+ "execa": "^5.0.0",
22
+ "internal-ip": "6.2.0",
23
+ "source-map-support": "^0.5.19",
24
+ "ts-node": "10.9.1"
25
+ },
26
+ "dependencies": {
27
+ "@discoveryjs/json-ext": "^0.5.7",
28
+ "colorette": "2.0.19",
29
+ "webpack": "5.74.0",
30
+ "webpack-bundle-analyzer": "4.6.1",
31
+ "webpack-dev-server": "4.11.1",
32
+ "yargs": "17.5.1",
33
+ "@rspack/core": "0.0.0-0074001a71-20230224065505",
34
+ "@rspack/dev-server": "0.0.0-0074001a71-20230224065505"
35
+ },
36
+ "scripts": {
37
+ "build": "rm -rf dist/ && tsc -b --force",
38
+ "clean": "rm -rf dist/ && tsc -b --clean",
39
+ "dev": "tsc -b -w",
40
+ "test": "jest --verbose"
41
+ }
42
+ }