@modern-js/app-tools 2.62.1-alpha.0 → 2.62.1

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 (54) hide show
  1. package/bin/modern.js +2 -2
  2. package/dist/cjs/index.js +142 -4
  3. package/dist/esm/index.js +248 -2
  4. package/dist/esm-node/index.js +130 -2
  5. package/dist/types/index.d.ts +6 -2
  6. package/package.json +18 -26
  7. package/dist/cjs/new/compat/hooks.js +0 -160
  8. package/dist/cjs/new/compat/index.js +0 -52
  9. package/dist/cjs/new/compat/utils.js +0 -95
  10. package/dist/cjs/new/constants.js +0 -37
  11. package/dist/cjs/new/context.js +0 -63
  12. package/dist/cjs/new/getConfigFile.js +0 -41
  13. package/dist/cjs/new/index.js +0 -76
  14. package/dist/cjs/new/loadPlugins.js +0 -57
  15. package/dist/cjs/new/run.js +0 -66
  16. package/dist/cjs/new/types/index.js +0 -16
  17. package/dist/cjs/new/utils/index.js +0 -34
  18. package/dist/cjs/old.js +0 -179
  19. package/dist/esm/new/compat/hooks.js +0 -418
  20. package/dist/esm/new/compat/index.js +0 -30
  21. package/dist/esm/new/compat/utils.js +0 -69
  22. package/dist/esm/new/constants.js +0 -10
  23. package/dist/esm/new/context.js +0 -30
  24. package/dist/esm/new/getConfigFile.js +0 -11
  25. package/dist/esm/new/index.js +0 -52
  26. package/dist/esm/new/loadPlugins.js +0 -94
  27. package/dist/esm/new/run.js +0 -79
  28. package/dist/esm/new/types/index.js +0 -0
  29. package/dist/esm/new/utils/index.js +0 -33
  30. package/dist/esm/old.js +0 -258
  31. package/dist/esm-node/new/compat/hooks.js +0 -135
  32. package/dist/esm-node/new/compat/index.js +0 -28
  33. package/dist/esm-node/new/compat/utils.js +0 -69
  34. package/dist/esm-node/new/constants.js +0 -10
  35. package/dist/esm-node/new/context.js +0 -29
  36. package/dist/esm-node/new/getConfigFile.js +0 -7
  37. package/dist/esm-node/new/index.js +0 -49
  38. package/dist/esm-node/new/loadPlugins.js +0 -33
  39. package/dist/esm-node/new/run.js +0 -42
  40. package/dist/esm-node/new/types/index.js +0 -0
  41. package/dist/esm-node/new/utils/index.js +0 -10
  42. package/dist/esm-node/old.js +0 -140
  43. package/dist/types/new/compat/hooks.d.ts +0 -8
  44. package/dist/types/new/compat/index.d.ts +0 -4
  45. package/dist/types/new/compat/utils.d.ts +0 -6
  46. package/dist/types/new/constants.d.ts +0 -4
  47. package/dist/types/new/context.d.ts +0 -32
  48. package/dist/types/new/getConfigFile.d.ts +0 -1
  49. package/dist/types/new/index.d.ts +0 -15
  50. package/dist/types/new/loadPlugins.d.ts +0 -9
  51. package/dist/types/new/run.d.ts +0 -13
  52. package/dist/types/new/types/index.d.ts +0 -89
  53. package/dist/types/new/utils/index.d.ts +0 -1
  54. package/dist/types/old.d.ts +0 -20
package/bin/modern.js CHANGED
@@ -10,10 +10,10 @@ if (!process.env.MODERN_JS_VERSION) {
10
10
  process.env.MODERN_JS_VERSION = version;
11
11
  }
12
12
 
13
- require('../dist/cjs/new/run.js').run({
13
+ require('@modern-js/core/runBin').run({
14
14
  internalPlugins: {
15
15
  cli: INTERNAL_APP_TOOLS_PLUGINS,
16
16
  autoLoad: INTERNAL_APP_TOOLS_RUNTIME_PLUGINS,
17
17
  },
18
- version,
18
+ initialLog: `Modern.js Framework v${version}`,
19
19
  });
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -16,26 +18,162 @@ var __copyProps = (to, from, except, desc) => {
16
18
  return to;
17
19
  };
18
20
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
19
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
30
  var src_exports = {};
21
31
  __export(src_exports, {
32
+ appTools: () => appTools,
22
33
  default: () => src_default,
23
34
  dev: () => import_dev.dev,
24
35
  mergeConfig: () => import_core.mergeConfig
25
36
  });
26
37
  module.exports = __toCommonJS(src_exports);
27
- var import_new = require("./new/index");
28
- __reExport(src_exports, require("./new/index"), module.exports);
38
+ var import_path = __toESM(require("path"));
39
+ var import_language_detector = require("@modern-js/plugin-i18n/language-detector");
40
+ var import_uni_builder = require("@modern-js/uni-builder");
41
+ var import_utils = require("@modern-js/utils");
42
+ var import_hooks = require("./hooks");
43
+ var import_locale = require("./locale");
44
+ var import_analyze = __toESM(require("./plugins/analyze"));
45
+ var import_deploy = __toESM(require("./plugins/deploy"));
46
+ var import_initialize = __toESM(require("./plugins/initialize"));
47
+ var import_serverBuild = __toESM(require("./plugins/serverBuild"));
48
+ var import_commands = require("./commands");
49
+ var import_generateWatchFiles = require("./utils/generateWatchFiles");
50
+ var import_restart = require("./utils/restart");
29
51
  var import_dev = require("./commands/dev");
30
52
  var import_core = require("@modern-js/core");
31
53
  __reExport(src_exports, require("./defineConfig"), module.exports);
32
54
  __reExport(src_exports, require("./types"), module.exports);
33
- var src_default = import_new.appTools;
55
+ const appTools = (options = {
56
+ // default webpack to be compatible with original projects
57
+ bundler: "webpack"
58
+ }) => ({
59
+ name: "@modern-js/app-tools",
60
+ post: [
61
+ "@modern-js/plugin-initialize",
62
+ "@modern-js/plugin-analyze",
63
+ "@modern-js/plugin-ssr",
64
+ "@modern-js/plugin-document",
65
+ "@modern-js/plugin-state",
66
+ "@modern-js/plugin-router",
67
+ "@modern-js/plugin-router-v5",
68
+ "@modern-js/plugin-polyfill"
69
+ ],
70
+ registerHook: import_hooks.hooks,
71
+ usePlugins: [
72
+ (0, import_initialize.default)({
73
+ bundler: (options === null || options === void 0 ? void 0 : options.bundler) && [
74
+ "rspack",
75
+ "experimental-rspack"
76
+ ].includes(options.bundler) ? "rspack" : "webpack"
77
+ }),
78
+ (0, import_analyze.default)({
79
+ bundler: (options === null || options === void 0 ? void 0 : options.bundler) && [
80
+ "rspack",
81
+ "experimental-rspack"
82
+ ].includes(options.bundler) ? "rspack" : "webpack"
83
+ }),
84
+ (0, import_serverBuild.default)(),
85
+ (0, import_deploy.default)()
86
+ ],
87
+ setup: (api) => {
88
+ const appContext = api.useAppContext();
89
+ api.setAppContext({
90
+ ...appContext,
91
+ toolsType: "app-tools"
92
+ });
93
+ const locale = (0, import_language_detector.getLocaleLanguage)();
94
+ import_locale.i18n.changeLanguage({
95
+ locale
96
+ });
97
+ return {
98
+ async beforeConfig() {
99
+ var _userConfig_output;
100
+ const userConfig = api.useConfigContext();
101
+ const appContext2 = api.useAppContext();
102
+ if ((_userConfig_output = userConfig.output) === null || _userConfig_output === void 0 ? void 0 : _userConfig_output.tempDir) {
103
+ api.setAppContext({
104
+ ...appContext2,
105
+ internalDirectory: import_path.default.resolve(appContext2.appDirectory, userConfig.output.tempDir)
106
+ });
107
+ }
108
+ },
109
+ async commands({ program }) {
110
+ await (0, import_commands.devCommand)(program, api);
111
+ await (0, import_commands.buildCommand)(program, api);
112
+ (0, import_commands.serverCommand)(program, api);
113
+ (0, import_commands.deployCommand)(program, api);
114
+ (0, import_commands.newCommand)(program, locale);
115
+ (0, import_commands.inspectCommand)(program, api);
116
+ (0, import_commands.upgradeCommand)(program);
117
+ (0, import_utils.deprecatedCommands)(program);
118
+ },
119
+ async prepare() {
120
+ const command = (0, import_utils.getCommand)();
121
+ if (command === "deploy") {
122
+ const isSkipBuild = [
123
+ "-s",
124
+ "--skip-build"
125
+ ].some((tag) => {
126
+ return (0, import_utils.getArgv)().includes(tag);
127
+ });
128
+ if (isSkipBuild) {
129
+ return;
130
+ }
131
+ }
132
+ if (command === "dev" || command === "start" || command === "build" || command === "deploy") {
133
+ const resolvedConfig = api.useResolvedConfigContext();
134
+ if (resolvedConfig.output.cleanDistPath) {
135
+ const appContext2 = api.useAppContext();
136
+ await (0, import_utils.emptyDir)(appContext2.distDirectory);
137
+ }
138
+ }
139
+ },
140
+ async watchFiles() {
141
+ const appContext2 = api.useAppContext();
142
+ const config = api.useResolvedConfigContext();
143
+ const files = await (0, import_generateWatchFiles.generateWatchFiles)(appContext2, config.source.configDir);
144
+ const watchFiles = (0, import_uni_builder.castArray)(config.dev.watchFiles);
145
+ watchFiles.forEach(({ type, paths }) => {
146
+ if (type === "reload-server") {
147
+ files.push(...Array.isArray(paths) ? paths : [
148
+ paths
149
+ ]);
150
+ }
151
+ });
152
+ return files;
153
+ },
154
+ // 这里会被 core/initWatcher 监听的文件变动触发,如果是 src 目录下的文件变动,则不做 restart
155
+ async fileChange(e) {
156
+ const { filename, eventType, isPrivate } = e;
157
+ if (!isPrivate && (eventType === "change" || eventType === "unlink")) {
158
+ const { closeServer } = await import("./utils/createServer.js");
159
+ await closeServer();
160
+ await (0, import_restart.restart)(api.useHookRunners(), filename);
161
+ }
162
+ },
163
+ async beforeRestart() {
164
+ (0, import_utils.cleanRequireCache)([
165
+ require.resolve("./plugins/analyze")
166
+ ]);
167
+ }
168
+ };
169
+ }
170
+ });
171
+ var src_default = appTools;
34
172
  // Annotate the CommonJS export names for ESM import in node:
35
173
  0 && (module.exports = {
174
+ appTools,
36
175
  dev,
37
176
  mergeConfig,
38
- ...require("./new/index"),
39
177
  ...require("./defineConfig"),
40
178
  ...require("./types")
41
179
  });
package/dist/esm/index.js CHANGED
@@ -1,11 +1,257 @@
1
- import { appTools } from "./new/index";
2
- export * from "./new/index";
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
3
+ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
4
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
5
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
6
+ import path from "path";
7
+ import { getLocaleLanguage } from "@modern-js/plugin-i18n/language-detector";
8
+ import { castArray } from "@modern-js/uni-builder";
9
+ import { cleanRequireCache, deprecatedCommands, emptyDir, getArgv, getCommand } from "@modern-js/utils";
10
+ import { hooks } from "./hooks";
11
+ import { i18n } from "./locale";
12
+ import analyzePlugin from "./plugins/analyze";
13
+ import deployPlugin from "./plugins/deploy";
14
+ import initializePlugin from "./plugins/initialize";
15
+ import serverBuildPlugin from "./plugins/serverBuild";
16
+ import { buildCommand, deployCommand, devCommand, inspectCommand, newCommand, serverCommand, upgradeCommand } from "./commands";
17
+ import { generateWatchFiles } from "./utils/generateWatchFiles";
18
+ import { restart } from "./utils/restart";
3
19
  import { dev } from "./commands/dev";
4
20
  import { mergeConfig } from "@modern-js/core";
5
21
  export * from "./defineConfig";
6
22
  export * from "./types";
23
+ var appTools = function() {
24
+ var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
25
+ // default webpack to be compatible with original projects
26
+ bundler: "webpack"
27
+ };
28
+ return {
29
+ name: "@modern-js/app-tools",
30
+ post: [
31
+ "@modern-js/plugin-initialize",
32
+ "@modern-js/plugin-analyze",
33
+ "@modern-js/plugin-ssr",
34
+ "@modern-js/plugin-document",
35
+ "@modern-js/plugin-state",
36
+ "@modern-js/plugin-router",
37
+ "@modern-js/plugin-router-v5",
38
+ "@modern-js/plugin-polyfill"
39
+ ],
40
+ registerHook: hooks,
41
+ usePlugins: [
42
+ initializePlugin({
43
+ bundler: (options === null || options === void 0 ? void 0 : options.bundler) && [
44
+ "rspack",
45
+ "experimental-rspack"
46
+ ].includes(options.bundler) ? "rspack" : "webpack"
47
+ }),
48
+ analyzePlugin({
49
+ bundler: (options === null || options === void 0 ? void 0 : options.bundler) && [
50
+ "rspack",
51
+ "experimental-rspack"
52
+ ].includes(options.bundler) ? "rspack" : "webpack"
53
+ }),
54
+ serverBuildPlugin(),
55
+ deployPlugin()
56
+ ],
57
+ setup: function(api) {
58
+ var appContext = api.useAppContext();
59
+ api.setAppContext(_object_spread_props(_object_spread({}, appContext), {
60
+ toolsType: "app-tools"
61
+ }));
62
+ var locale = getLocaleLanguage();
63
+ i18n.changeLanguage({
64
+ locale
65
+ });
66
+ return {
67
+ beforeConfig: function beforeConfig() {
68
+ return _async_to_generator(function() {
69
+ var _userConfig_output, userConfig, appContext2;
70
+ return _ts_generator(this, function(_state) {
71
+ userConfig = api.useConfigContext();
72
+ appContext2 = api.useAppContext();
73
+ if ((_userConfig_output = userConfig.output) === null || _userConfig_output === void 0 ? void 0 : _userConfig_output.tempDir) {
74
+ api.setAppContext(_object_spread_props(_object_spread({}, appContext2), {
75
+ internalDirectory: path.resolve(appContext2.appDirectory, userConfig.output.tempDir)
76
+ }));
77
+ }
78
+ return [
79
+ 2
80
+ ];
81
+ });
82
+ })();
83
+ },
84
+ commands: function commands(param) {
85
+ var program = param.program;
86
+ return _async_to_generator(function() {
87
+ return _ts_generator(this, function(_state) {
88
+ switch (_state.label) {
89
+ case 0:
90
+ return [
91
+ 4,
92
+ devCommand(program, api)
93
+ ];
94
+ case 1:
95
+ _state.sent();
96
+ return [
97
+ 4,
98
+ buildCommand(program, api)
99
+ ];
100
+ case 2:
101
+ _state.sent();
102
+ serverCommand(program, api);
103
+ deployCommand(program, api);
104
+ newCommand(program, locale);
105
+ inspectCommand(program, api);
106
+ upgradeCommand(program);
107
+ deprecatedCommands(program);
108
+ return [
109
+ 2
110
+ ];
111
+ }
112
+ });
113
+ })();
114
+ },
115
+ prepare: function prepare() {
116
+ return _async_to_generator(function() {
117
+ var command, isSkipBuild, resolvedConfig, appContext2;
118
+ return _ts_generator(this, function(_state) {
119
+ switch (_state.label) {
120
+ case 0:
121
+ command = getCommand();
122
+ if (command === "deploy") {
123
+ isSkipBuild = [
124
+ "-s",
125
+ "--skip-build"
126
+ ].some(function(tag) {
127
+ return getArgv().includes(tag);
128
+ });
129
+ if (isSkipBuild) {
130
+ return [
131
+ 2
132
+ ];
133
+ }
134
+ }
135
+ if (!(command === "dev" || command === "start" || command === "build" || command === "deploy"))
136
+ return [
137
+ 3,
138
+ 2
139
+ ];
140
+ resolvedConfig = api.useResolvedConfigContext();
141
+ if (!resolvedConfig.output.cleanDistPath)
142
+ return [
143
+ 3,
144
+ 2
145
+ ];
146
+ appContext2 = api.useAppContext();
147
+ return [
148
+ 4,
149
+ emptyDir(appContext2.distDirectory)
150
+ ];
151
+ case 1:
152
+ _state.sent();
153
+ _state.label = 2;
154
+ case 2:
155
+ return [
156
+ 2
157
+ ];
158
+ }
159
+ });
160
+ })();
161
+ },
162
+ watchFiles: function watchFiles() {
163
+ return _async_to_generator(function() {
164
+ var appContext2, config, files, watchFiles2;
165
+ return _ts_generator(this, function(_state) {
166
+ switch (_state.label) {
167
+ case 0:
168
+ appContext2 = api.useAppContext();
169
+ config = api.useResolvedConfigContext();
170
+ return [
171
+ 4,
172
+ generateWatchFiles(appContext2, config.source.configDir)
173
+ ];
174
+ case 1:
175
+ files = _state.sent();
176
+ watchFiles2 = castArray(config.dev.watchFiles);
177
+ watchFiles2.forEach(function(param) {
178
+ var type = param.type, paths = param.paths;
179
+ if (type === "reload-server") {
180
+ var _files;
181
+ (_files = files).push.apply(_files, _to_consumable_array(Array.isArray(paths) ? paths : [
182
+ paths
183
+ ]));
184
+ }
185
+ });
186
+ return [
187
+ 2,
188
+ files
189
+ ];
190
+ }
191
+ });
192
+ })();
193
+ },
194
+ fileChange: (
195
+ // 这里会被 core/initWatcher 监听的文件变动触发,如果是 src 目录下的文件变动,则不做 restart
196
+ function fileChange(e) {
197
+ return _async_to_generator(function() {
198
+ var filename, eventType, isPrivate, closeServer;
199
+ return _ts_generator(this, function(_state) {
200
+ switch (_state.label) {
201
+ case 0:
202
+ filename = e.filename, eventType = e.eventType, isPrivate = e.isPrivate;
203
+ if (!(!isPrivate && (eventType === "change" || eventType === "unlink")))
204
+ return [
205
+ 3,
206
+ 4
207
+ ];
208
+ return [
209
+ 4,
210
+ import("./utils/createServer.js")
211
+ ];
212
+ case 1:
213
+ closeServer = _state.sent().closeServer;
214
+ return [
215
+ 4,
216
+ closeServer()
217
+ ];
218
+ case 2:
219
+ _state.sent();
220
+ return [
221
+ 4,
222
+ restart(api.useHookRunners(), filename)
223
+ ];
224
+ case 3:
225
+ _state.sent();
226
+ _state.label = 4;
227
+ case 4:
228
+ return [
229
+ 2
230
+ ];
231
+ }
232
+ });
233
+ })();
234
+ }
235
+ ),
236
+ beforeRestart: function beforeRestart() {
237
+ return _async_to_generator(function() {
238
+ return _ts_generator(this, function(_state) {
239
+ cleanRequireCache([
240
+ require.resolve("./plugins/analyze")
241
+ ]);
242
+ return [
243
+ 2
244
+ ];
245
+ });
246
+ })();
247
+ }
248
+ };
249
+ }
250
+ };
251
+ };
7
252
  var src_default = appTools;
8
253
  export {
254
+ appTools,
9
255
  src_default as default,
10
256
  dev,
11
257
  mergeConfig
@@ -1,11 +1,139 @@
1
- import { appTools } from "./new/index";
2
- export * from "./new/index";
1
+ import path from "path";
2
+ import { getLocaleLanguage } from "@modern-js/plugin-i18n/language-detector";
3
+ import { castArray } from "@modern-js/uni-builder";
4
+ import { cleanRequireCache, deprecatedCommands, emptyDir, getArgv, getCommand } from "@modern-js/utils";
5
+ import { hooks } from "./hooks";
6
+ import { i18n } from "./locale";
7
+ import analyzePlugin from "./plugins/analyze";
8
+ import deployPlugin from "./plugins/deploy";
9
+ import initializePlugin from "./plugins/initialize";
10
+ import serverBuildPlugin from "./plugins/serverBuild";
11
+ import { buildCommand, deployCommand, devCommand, inspectCommand, newCommand, serverCommand, upgradeCommand } from "./commands";
12
+ import { generateWatchFiles } from "./utils/generateWatchFiles";
13
+ import { restart } from "./utils/restart";
3
14
  import { dev } from "./commands/dev";
4
15
  import { mergeConfig } from "@modern-js/core";
5
16
  export * from "./defineConfig";
6
17
  export * from "./types";
18
+ const appTools = (options = {
19
+ // default webpack to be compatible with original projects
20
+ bundler: "webpack"
21
+ }) => ({
22
+ name: "@modern-js/app-tools",
23
+ post: [
24
+ "@modern-js/plugin-initialize",
25
+ "@modern-js/plugin-analyze",
26
+ "@modern-js/plugin-ssr",
27
+ "@modern-js/plugin-document",
28
+ "@modern-js/plugin-state",
29
+ "@modern-js/plugin-router",
30
+ "@modern-js/plugin-router-v5",
31
+ "@modern-js/plugin-polyfill"
32
+ ],
33
+ registerHook: hooks,
34
+ usePlugins: [
35
+ initializePlugin({
36
+ bundler: (options === null || options === void 0 ? void 0 : options.bundler) && [
37
+ "rspack",
38
+ "experimental-rspack"
39
+ ].includes(options.bundler) ? "rspack" : "webpack"
40
+ }),
41
+ analyzePlugin({
42
+ bundler: (options === null || options === void 0 ? void 0 : options.bundler) && [
43
+ "rspack",
44
+ "experimental-rspack"
45
+ ].includes(options.bundler) ? "rspack" : "webpack"
46
+ }),
47
+ serverBuildPlugin(),
48
+ deployPlugin()
49
+ ],
50
+ setup: (api) => {
51
+ const appContext = api.useAppContext();
52
+ api.setAppContext({
53
+ ...appContext,
54
+ toolsType: "app-tools"
55
+ });
56
+ const locale = getLocaleLanguage();
57
+ i18n.changeLanguage({
58
+ locale
59
+ });
60
+ return {
61
+ async beforeConfig() {
62
+ var _userConfig_output;
63
+ const userConfig = api.useConfigContext();
64
+ const appContext2 = api.useAppContext();
65
+ if ((_userConfig_output = userConfig.output) === null || _userConfig_output === void 0 ? void 0 : _userConfig_output.tempDir) {
66
+ api.setAppContext({
67
+ ...appContext2,
68
+ internalDirectory: path.resolve(appContext2.appDirectory, userConfig.output.tempDir)
69
+ });
70
+ }
71
+ },
72
+ async commands({ program }) {
73
+ await devCommand(program, api);
74
+ await buildCommand(program, api);
75
+ serverCommand(program, api);
76
+ deployCommand(program, api);
77
+ newCommand(program, locale);
78
+ inspectCommand(program, api);
79
+ upgradeCommand(program);
80
+ deprecatedCommands(program);
81
+ },
82
+ async prepare() {
83
+ const command = getCommand();
84
+ if (command === "deploy") {
85
+ const isSkipBuild = [
86
+ "-s",
87
+ "--skip-build"
88
+ ].some((tag) => {
89
+ return getArgv().includes(tag);
90
+ });
91
+ if (isSkipBuild) {
92
+ return;
93
+ }
94
+ }
95
+ if (command === "dev" || command === "start" || command === "build" || command === "deploy") {
96
+ const resolvedConfig = api.useResolvedConfigContext();
97
+ if (resolvedConfig.output.cleanDistPath) {
98
+ const appContext2 = api.useAppContext();
99
+ await emptyDir(appContext2.distDirectory);
100
+ }
101
+ }
102
+ },
103
+ async watchFiles() {
104
+ const appContext2 = api.useAppContext();
105
+ const config = api.useResolvedConfigContext();
106
+ const files = await generateWatchFiles(appContext2, config.source.configDir);
107
+ const watchFiles = castArray(config.dev.watchFiles);
108
+ watchFiles.forEach(({ type, paths }) => {
109
+ if (type === "reload-server") {
110
+ files.push(...Array.isArray(paths) ? paths : [
111
+ paths
112
+ ]);
113
+ }
114
+ });
115
+ return files;
116
+ },
117
+ // 这里会被 core/initWatcher 监听的文件变动触发,如果是 src 目录下的文件变动,则不做 restart
118
+ async fileChange(e) {
119
+ const { filename, eventType, isPrivate } = e;
120
+ if (!isPrivate && (eventType === "change" || eventType === "unlink")) {
121
+ const { closeServer } = await import("./utils/createServer.js");
122
+ await closeServer();
123
+ await restart(api.useHookRunners(), filename);
124
+ }
125
+ },
126
+ async beforeRestart() {
127
+ cleanRequireCache([
128
+ require.resolve("./plugins/analyze")
129
+ ]);
130
+ }
131
+ };
132
+ }
133
+ });
7
134
  var src_default = appTools;
8
135
  export {
136
+ appTools,
9
137
  src_default as default,
10
138
  dev,
11
139
  mergeConfig
@@ -1,5 +1,5 @@
1
- import { appTools } from './new/index';
2
- export * from './new/index';
1
+ import type { CliPlugin } from '@modern-js/core';
2
+ import type { AppTools } from './types';
3
3
  export { dev } from './commands/dev';
4
4
  export type { DevOptions } from './utils/types';
5
5
  export { mergeConfig } from '@modern-js/core';
@@ -13,4 +13,8 @@ export type AppToolsOptions = {
13
13
  * */
14
14
  bundler?: 'rspack' | 'webpack' | 'experimental-rspack';
15
15
  };
16
+ /**
17
+ * The core package of the framework, providing CLI commands, build capabilities, configuration parsing and more.
18
+ */
19
+ export declare const appTools: (options?: AppToolsOptions) => CliPlugin<AppTools<'shared'>>;
16
20
  export default appTools;