@modern-js/app-tools 2.14.0 → 2.16.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 (269) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/dist/cjs/analyze/constants.js +37 -61
  3. package/dist/cjs/analyze/generateCode.js +102 -127
  4. package/dist/cjs/analyze/getBundleEntry.js +33 -66
  5. package/dist/cjs/analyze/getClientRoutes/getRoutes.js +61 -117
  6. package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +61 -115
  7. package/dist/cjs/analyze/getClientRoutes/index.js +15 -28
  8. package/dist/cjs/analyze/getClientRoutes/utils.js +24 -48
  9. package/dist/cjs/analyze/getFileSystemEntry.js +39 -79
  10. package/dist/cjs/analyze/getHtmlTemplate.js +88 -98
  11. package/dist/cjs/analyze/getServerRoutes.js +67 -110
  12. package/dist/cjs/analyze/index.js +265 -257
  13. package/dist/cjs/analyze/isDefaultExportFunction.js +66 -44
  14. package/dist/cjs/analyze/makeLegalIdentifier.js +7 -25
  15. package/dist/cjs/analyze/nestedRoutes.js +99 -104
  16. package/dist/cjs/analyze/templates.js +49 -110
  17. package/dist/cjs/analyze/utils.js +98 -102
  18. package/dist/cjs/builder/builder-rspack/adapterCopy.js +58 -100
  19. package/dist/cjs/builder/builder-rspack/index.js +14 -30
  20. package/dist/cjs/builder/builder-webpack/adapterModern.js +33 -50
  21. package/dist/cjs/builder/builder-webpack/createCopyPattern.js +16 -32
  22. package/dist/cjs/builder/builder-webpack/index.js +65 -46
  23. package/dist/cjs/builder/generator/createBuilderOptions.js +10 -26
  24. package/dist/cjs/builder/generator/createBuilderProviderConfig.js +11 -27
  25. package/dist/cjs/builder/generator/getBuilderTargets.js +13 -29
  26. package/dist/cjs/builder/generator/index.js +61 -55
  27. package/dist/cjs/builder/index.js +53 -43
  28. package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +13 -36
  29. package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +90 -90
  30. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +108 -111
  31. package/dist/cjs/builder/shared/builderPlugins/index.js +20 -19
  32. package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +30 -30
  33. package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +32 -38
  34. package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +86 -116
  35. package/dist/cjs/builder/shared/bundlerPlugins/index.js +20 -19
  36. package/dist/cjs/builder/shared/createCopyInfo.js +16 -42
  37. package/dist/cjs/builder/shared/index.js +20 -19
  38. package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +8 -24
  39. package/dist/cjs/builder/shared/types.js +4 -15
  40. package/dist/cjs/commands/build.js +23 -40
  41. package/dist/cjs/commands/deploy.js +7 -25
  42. package/dist/cjs/commands/dev.js +38 -57
  43. package/dist/cjs/commands/index.js +20 -19
  44. package/dist/cjs/commands/inspect.js +10 -30
  45. package/dist/cjs/commands/serve.js +28 -66
  46. package/dist/cjs/config/default.js +34 -34
  47. package/dist/cjs/config/index.js +20 -19
  48. package/dist/cjs/config/initialize/index.js +11 -29
  49. package/dist/cjs/config/initialize/inits.js +103 -82
  50. package/dist/cjs/config/legacy/createHtmlConfig.js +8 -40
  51. package/dist/cjs/config/legacy/createOutputConfig.js +8 -51
  52. package/dist/cjs/config/legacy/createSourceConfig.js +8 -38
  53. package/dist/cjs/config/legacy/createToolsConfig.js +8 -43
  54. package/dist/cjs/config/legacy/index.js +22 -46
  55. package/dist/cjs/defineConfig.js +16 -31
  56. package/dist/cjs/exports/server.js +7 -25
  57. package/dist/cjs/hooks.js +33 -51
  58. package/dist/cjs/index.js +185 -166
  59. package/dist/cjs/initialize/index.js +84 -100
  60. package/dist/cjs/locale/en.js +13 -27
  61. package/dist/cjs/locale/index.js +18 -28
  62. package/dist/cjs/locale/zh.js +13 -27
  63. package/dist/cjs/schema/Schema.js +27 -31
  64. package/dist/cjs/schema/index.js +141 -71
  65. package/dist/cjs/schema/legacy.js +273 -96
  66. package/dist/cjs/types/config/deploy.js +4 -15
  67. package/dist/cjs/types/config/dev.js +4 -15
  68. package/dist/cjs/types/config/experiments.js +4 -15
  69. package/dist/cjs/types/config/html.js +4 -15
  70. package/dist/cjs/types/config/index.js +18 -17
  71. package/dist/cjs/types/config/output.js +4 -15
  72. package/dist/cjs/types/config/performance.js +4 -15
  73. package/dist/cjs/types/config/security.js +4 -15
  74. package/dist/cjs/types/config/source.js +4 -15
  75. package/dist/cjs/types/config/tools.js +4 -15
  76. package/dist/cjs/types/hooks.js +4 -15
  77. package/dist/cjs/types/index.js +20 -19
  78. package/dist/cjs/types/legacyConfig/deploy.js +4 -15
  79. package/dist/cjs/types/legacyConfig/dev.js +4 -15
  80. package/dist/cjs/types/legacyConfig/index.js +4 -15
  81. package/dist/cjs/types/legacyConfig/output.js +4 -15
  82. package/dist/cjs/types/legacyConfig/source.js +4 -15
  83. package/dist/cjs/types/legacyConfig/tools.js +4 -15
  84. package/dist/cjs/types/utils.js +4 -15
  85. package/dist/cjs/utils/config.js +74 -79
  86. package/dist/cjs/utils/createServer.js +16 -42
  87. package/dist/cjs/utils/env.js +7 -25
  88. package/dist/cjs/utils/generateWatchFiles.js +31 -52
  89. package/dist/cjs/utils/getSelectedEntries.js +13 -35
  90. package/dist/cjs/utils/getServerInternalPlugins.js +8 -29
  91. package/dist/cjs/utils/printInstructions.js +10 -28
  92. package/dist/cjs/utils/restart.js +13 -31
  93. package/dist/cjs/utils/routes.js +18 -39
  94. package/dist/cjs/utils/types.js +4 -15
  95. package/dist/esm/analyze/constants.js +40 -41
  96. package/dist/esm/analyze/generateCode.js +477 -455
  97. package/dist/esm/analyze/getBundleEntry.js +53 -54
  98. package/dist/esm/analyze/getClientRoutes/getRoutes.js +201 -202
  99. package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +199 -200
  100. package/dist/esm/analyze/getClientRoutes/index.js +2 -3
  101. package/dist/esm/analyze/getClientRoutes/utils.js +15 -15
  102. package/dist/esm/analyze/getFileSystemEntry.js +86 -87
  103. package/dist/esm/analyze/getHtmlTemplate.js +289 -278
  104. package/dist/esm/analyze/getServerRoutes.js +203 -190
  105. package/dist/esm/analyze/index.js +679 -651
  106. package/dist/esm/analyze/isDefaultExportFunction.js +38 -39
  107. package/dist/esm/analyze/makeLegalIdentifier.js +8 -9
  108. package/dist/esm/analyze/nestedRoutes.js +400 -392
  109. package/dist/esm/analyze/templates.js +536 -509
  110. package/dist/esm/analyze/utils.js +357 -336
  111. package/dist/esm/builder/builder-rspack/adapterCopy.js +347 -330
  112. package/dist/esm/builder/builder-rspack/index.js +8 -9
  113. package/dist/esm/builder/builder-webpack/adapterModern.js +51 -43
  114. package/dist/esm/builder/builder-webpack/createCopyPattern.js +31 -32
  115. package/dist/esm/builder/builder-webpack/index.js +266 -249
  116. package/dist/esm/builder/generator/createBuilderOptions.js +37 -38
  117. package/dist/esm/builder/generator/createBuilderProviderConfig.js +62 -63
  118. package/dist/esm/builder/generator/getBuilderTargets.js +13 -14
  119. package/dist/esm/builder/generator/index.js +203 -196
  120. package/dist/esm/builder/index.js +183 -176
  121. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +90 -91
  122. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +300 -291
  123. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +337 -329
  124. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +108 -97
  125. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +66 -64
  126. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +364 -337
  127. package/dist/esm/builder/shared/createCopyInfo.js +9 -10
  128. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +2 -3
  129. package/dist/esm/builder/shared/types.js +1 -1
  130. package/dist/esm/commands/build.js +279 -272
  131. package/dist/esm/commands/deploy.js +150 -144
  132. package/dist/esm/commands/dev.js +296 -289
  133. package/dist/esm/commands/inspect.js +144 -138
  134. package/dist/esm/commands/serve.js +241 -235
  135. package/dist/esm/config/default.js +202 -203
  136. package/dist/esm/config/initialize/index.js +7 -8
  137. package/dist/esm/config/initialize/inits.js +189 -181
  138. package/dist/esm/config/legacy/createHtmlConfig.js +17 -18
  139. package/dist/esm/config/legacy/createOutputConfig.js +41 -42
  140. package/dist/esm/config/legacy/createSourceConfig.js +38 -39
  141. package/dist/esm/config/legacy/createToolsConfig.js +24 -25
  142. package/dist/esm/config/legacy/index.js +31 -32
  143. package/dist/esm/defineConfig.js +52 -53
  144. package/dist/esm/exports/server.js +1 -2
  145. package/dist/esm/hooks.js +26 -27
  146. package/dist/esm/index.js +685 -671
  147. package/dist/esm/initialize/index.js +276 -269
  148. package/dist/esm/locale/en.js +36 -37
  149. package/dist/esm/locale/index.js +2 -2
  150. package/dist/esm/locale/zh.js +36 -37
  151. package/dist/esm/schema/Schema.js +255 -244
  152. package/dist/esm/schema/index.js +165 -165
  153. package/dist/esm/schema/legacy.js +316 -317
  154. package/dist/esm/types/config/deploy.js +1 -1
  155. package/dist/esm/types/config/dev.js +1 -1
  156. package/dist/esm/types/config/experiments.js +1 -1
  157. package/dist/esm/types/config/html.js +1 -1
  158. package/dist/esm/types/config/output.js +1 -1
  159. package/dist/esm/types/config/performance.js +1 -1
  160. package/dist/esm/types/config/security.js +1 -1
  161. package/dist/esm/types/config/source.js +1 -1
  162. package/dist/esm/types/config/tools.js +1 -1
  163. package/dist/esm/types/hooks.js +1 -1
  164. package/dist/esm/types/legacyConfig/deploy.js +1 -1
  165. package/dist/esm/types/legacyConfig/dev.js +1 -1
  166. package/dist/esm/types/legacyConfig/index.js +1 -1
  167. package/dist/esm/types/legacyConfig/output.js +1 -1
  168. package/dist/esm/types/legacyConfig/source.js +1 -1
  169. package/dist/esm/types/legacyConfig/tools.js +1 -1
  170. package/dist/esm/types/utils.js +1 -1
  171. package/dist/esm/utils/config.js +285 -278
  172. package/dist/esm/utils/createServer.js +242 -234
  173. package/dist/esm/utils/env.js +11 -12
  174. package/dist/esm/utils/generateWatchFiles.js +205 -190
  175. package/dist/esm/utils/getSelectedEntries.js +180 -173
  176. package/dist/esm/utils/getServerInternalPlugins.js +197 -191
  177. package/dist/esm/utils/printInstructions.js +147 -141
  178. package/dist/esm/utils/restart.js +179 -173
  179. package/dist/esm/utils/routes.js +146 -139
  180. package/dist/esm/utils/types.js +1 -1
  181. package/dist/esm-node/analyze/constants.js +31 -46
  182. package/dist/esm-node/analyze/generateCode.js +28 -94
  183. package/dist/esm-node/analyze/getBundleEntry.js +8 -27
  184. package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +24 -65
  185. package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +24 -63
  186. package/dist/esm-node/analyze/getClientRoutes/index.js +2 -6
  187. package/dist/esm-node/analyze/getClientRoutes/utils.js +5 -19
  188. package/dist/esm-node/analyze/getFileSystemEntry.js +10 -37
  189. package/dist/esm-node/analyze/getHtmlTemplate.js +29 -59
  190. package/dist/esm-node/analyze/getServerRoutes.js +43 -75
  191. package/dist/esm-node/analyze/index.js +208 -230
  192. package/dist/esm-node/analyze/isDefaultExportFunction.js +7 -5
  193. package/dist/esm-node/analyze/makeLegalIdentifier.js +1 -4
  194. package/dist/esm-node/analyze/nestedRoutes.js +23 -43
  195. package/dist/esm-node/analyze/templates.js +22 -69
  196. package/dist/esm-node/analyze/utils.js +66 -60
  197. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +40 -62
  198. package/dist/esm-node/builder/builder-rspack/index.js +4 -5
  199. package/dist/esm-node/builder/builder-webpack/adapterModern.js +24 -26
  200. package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +3 -10
  201. package/dist/esm-node/builder/builder-webpack/index.js +13 -11
  202. package/dist/esm-node/builder/generator/createBuilderOptions.js +4 -5
  203. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +5 -6
  204. package/dist/esm-node/builder/generator/getBuilderTargets.js +5 -11
  205. package/dist/esm-node/builder/generator/index.js +7 -16
  206. package/dist/esm-node/builder/index.js +2 -7
  207. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +2 -6
  208. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +34 -60
  209. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +54 -74
  210. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +23 -8
  211. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +25 -16
  212. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +66 -76
  213. package/dist/esm-node/builder/shared/createCopyInfo.js +2 -8
  214. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +1 -4
  215. package/dist/esm-node/builder/shared/types.js +1 -0
  216. package/dist/esm-node/commands/build.js +7 -9
  217. package/dist/esm-node/commands/deploy.js +1 -4
  218. package/dist/esm-node/commands/dev.js +19 -27
  219. package/dist/esm-node/commands/inspect.js +3 -8
  220. package/dist/esm-node/commands/serve.js +7 -25
  221. package/dist/esm-node/config/default.js +20 -11
  222. package/dist/esm-node/config/initialize/index.js +1 -4
  223. package/dist/esm-node/config/initialize/inits.js +48 -54
  224. package/dist/esm-node/config/legacy/createHtmlConfig.js +2 -19
  225. package/dist/esm-node/config/legacy/createOutputConfig.js +2 -30
  226. package/dist/esm-node/config/legacy/createSourceConfig.js +2 -17
  227. package/dist/esm-node/config/legacy/createToolsConfig.js +2 -22
  228. package/dist/esm-node/config/legacy/index.js +3 -18
  229. package/dist/esm-node/defineConfig.js +7 -13
  230. package/dist/esm-node/exports/server.js +1 -4
  231. package/dist/esm-node/hooks.js +2 -9
  232. package/dist/esm-node/index.js +95 -120
  233. package/dist/esm-node/initialize/index.js +74 -87
  234. package/dist/esm-node/locale/en.js +7 -6
  235. package/dist/esm-node/locale/index.js +5 -5
  236. package/dist/esm-node/locale/zh.js +7 -6
  237. package/dist/esm-node/schema/Schema.js +19 -8
  238. package/dist/esm-node/schema/index.js +121 -36
  239. package/dist/esm-node/schema/legacy.js +262 -72
  240. package/dist/esm-node/types/config/deploy.js +1 -0
  241. package/dist/esm-node/types/config/dev.js +1 -0
  242. package/dist/esm-node/types/config/experiments.js +1 -0
  243. package/dist/esm-node/types/config/html.js +1 -0
  244. package/dist/esm-node/types/config/output.js +1 -0
  245. package/dist/esm-node/types/config/performance.js +1 -0
  246. package/dist/esm-node/types/config/security.js +1 -0
  247. package/dist/esm-node/types/config/source.js +1 -0
  248. package/dist/esm-node/types/config/tools.js +1 -0
  249. package/dist/esm-node/types/hooks.js +1 -0
  250. package/dist/esm-node/types/legacyConfig/deploy.js +1 -0
  251. package/dist/esm-node/types/legacyConfig/dev.js +1 -0
  252. package/dist/esm-node/types/legacyConfig/index.js +1 -0
  253. package/dist/esm-node/types/legacyConfig/output.js +1 -0
  254. package/dist/esm-node/types/legacyConfig/source.js +1 -0
  255. package/dist/esm-node/types/legacyConfig/tools.js +1 -0
  256. package/dist/esm-node/types/utils.js +1 -0
  257. package/dist/esm-node/utils/config.js +16 -47
  258. package/dist/esm-node/utils/createServer.js +5 -12
  259. package/dist/esm-node/utils/env.js +1 -4
  260. package/dist/esm-node/utils/generateWatchFiles.js +13 -20
  261. package/dist/esm-node/utils/getSelectedEntries.js +2 -9
  262. package/dist/esm-node/utils/getServerInternalPlugins.js +2 -8
  263. package/dist/esm-node/utils/printInstructions.js +1 -4
  264. package/dist/esm-node/utils/restart.js +2 -11
  265. package/dist/esm-node/utils/routes.js +4 -4
  266. package/dist/esm-node/utils/types.js +1 -0
  267. package/dist/types/index.d.ts +2 -2
  268. package/lib/types.d.ts +1 -0
  269. package/package.json +29 -25
@@ -1,52 +1,38 @@
1
1
  import path, { dirname, isAbsolute, posix, sep } from "path";
2
- import {
3
- applyOptionsChain,
4
- findExists,
5
- findMonorepoRoot,
6
- globby,
7
- isModernjsMonorepo
8
- } from "@modern-js/utils";
9
- function initHtmlConfig(config, appContext) {
10
- const ICON_EXTENSIONS = ["png", "jpg", "jpeg", "svg", "ico"];
2
+ import { applyOptionsChain, findExists, findMonorepoRoot, globby, isModernjsMonorepo } from "@modern-js/utils";
3
+ export function initHtmlConfig(config, appContext) {
4
+ const ICON_EXTENSIONS = [
5
+ "png",
6
+ "jpg",
7
+ "jpeg",
8
+ "svg",
9
+ "ico"
10
+ ];
11
11
  config.html.appIcon = createBuilderAppIcon(config, appContext);
12
12
  config.html.favicon = createBuilderFavicon(config, appContext);
13
13
  return config.html;
14
14
  function createBuilderAppIcon(config2, appContext2) {
15
15
  const { configDir } = config2.source;
16
- const appIcon = findExists(
17
- ICON_EXTENSIONS.map(
18
- (ext) => path.resolve(
19
- appContext2.appDirectory,
20
- configDir || "./config",
21
- `icon.${ext}`
22
- )
23
- )
24
- );
16
+ const appIcon = findExists(ICON_EXTENSIONS.map((ext) => path.resolve(appContext2.appDirectory, configDir || "./config", `icon.${ext}`)));
25
17
  return typeof appIcon === "string" ? appIcon : void 0;
26
18
  }
27
19
  function createBuilderFavicon(config2, appContext2) {
28
20
  const { configDir } = config2.source;
29
21
  const { favicon } = config2.html;
30
- const defaultFavicon = findExists(
31
- ICON_EXTENSIONS.map(
32
- (ext) => path.resolve(
33
- appContext2.appDirectory,
34
- configDir || "./config",
35
- `favicon.${ext}`
36
- )
37
- )
38
- );
22
+ const defaultFavicon = findExists(ICON_EXTENSIONS.map((ext) => path.resolve(appContext2.appDirectory, configDir || "./config", `favicon.${ext}`)));
39
23
  return favicon || defaultFavicon || void 0;
40
24
  }
41
25
  }
42
- function initSourceConfig(config, appContext, bundler) {
26
+ export function initSourceConfig(config, appContext, bundler) {
43
27
  config.source.include = createBuilderInclude(config, appContext);
44
28
  if (bundler === "webpack") {
45
29
  config.source.moduleScopes = createBuilderModuleScope(config);
46
30
  }
47
31
  function createBuilderInclude(config2, appContext2) {
48
32
  const { include } = config2.source;
49
- const defaultInclude = [appContext2.internalDirectory];
33
+ const defaultInclude = [
34
+ appContext2.internalDirectory
35
+ ];
50
36
  const transformInclude = (include || []).map((include2) => {
51
37
  if (typeof include2 === "string") {
52
38
  if (isAbsolute(include2)) {
@@ -63,9 +49,14 @@ function initSourceConfig(config, appContext, bundler) {
63
49
  const modernjsMonorepo = isModernjsMonorepo(root);
64
50
  if (modernjsMonorepo) {
65
51
  const paths = globby.sync(posix.join(root, "features", "**", "package.json"), {
66
- ignore: ["**/node_modules/**/*"]
52
+ ignore: [
53
+ "**/node_modules/**/*"
54
+ ]
67
55
  }).map((pathname) => dirname(pathname) + sep);
68
- return [...paths, ...transformInclude];
56
+ return [
57
+ ...paths,
58
+ ...transformInclude
59
+ ];
69
60
  }
70
61
  return transformInclude;
71
62
  }
@@ -82,48 +73,51 @@ function initSourceConfig(config, appContext, bundler) {
82
73
  if (isPrimitiveScope(moduleScopes)) {
83
74
  builderModuleScope = DEFAULT_SCOPES.concat(moduleScopes);
84
75
  } else {
85
- builderModuleScope = [DEFAULT_SCOPES, ...moduleScopes];
76
+ builderModuleScope = [
77
+ DEFAULT_SCOPES,
78
+ ...moduleScopes
79
+ ];
86
80
  }
87
81
  } else {
88
- builderModuleScope = [DEFAULT_SCOPES, moduleScopes];
82
+ builderModuleScope = [
83
+ DEFAULT_SCOPES,
84
+ moduleScopes
85
+ ];
89
86
  }
90
87
  return builderModuleScope;
91
88
  } else {
92
89
  return void 0;
93
90
  }
94
91
  function isPrimitiveScope(items) {
95
- return items.every(
96
- (item) => typeof item === "string" || Object.prototype.toString.call(item) === "[object RegExp]"
97
- );
92
+ return items.every((item) => typeof item === "string" || Object.prototype.toString.call(item) === "[object RegExp]");
98
93
  }
99
94
  }
100
95
  }
101
- function initToolsConfig(config) {
96
+ export function initToolsConfig(config) {
102
97
  const defaultTsChecker = {
103
98
  issue: {
104
- include: [{ file: "**/src/**/*" }],
99
+ include: [
100
+ {
101
+ file: "**/src/**/*"
102
+ }
103
+ ],
105
104
  exclude: [
106
- { file: "**/*.(spec|test).ts" },
107
- { file: "**/node_modules/**/*" }
105
+ {
106
+ file: "**/*.(spec|test).ts"
107
+ },
108
+ {
109
+ file: "**/node_modules/**/*"
110
+ }
108
111
  ]
109
112
  }
110
113
  };
111
114
  const { tsChecker, tsLoader } = config.tools;
112
115
  config.tools.tsChecker = applyOptionsChain(defaultTsChecker, tsChecker);
113
116
  tsLoader && (config.tools.tsLoader = (tsLoaderConfig, utils) => {
114
- applyOptionsChain(
115
- {
116
- ...tsLoaderConfig,
117
- transpileOnly: false,
118
- allowTsInNodeModules: true
119
- },
120
- tsLoader || {},
121
- utils
122
- );
117
+ applyOptionsChain({
118
+ ...tsLoaderConfig,
119
+ transpileOnly: false,
120
+ allowTsInNodeModules: true
121
+ }, tsLoader || {}, utils);
123
122
  });
124
123
  }
125
- export {
126
- initHtmlConfig,
127
- initSourceConfig,
128
- initToolsConfig
129
- };
@@ -1,19 +1,5 @@
1
- function createHtmlConfig(config) {
2
- const {
3
- disableHtmlFolder,
4
- favicon,
5
- faviconByEntries,
6
- inject,
7
- injectByEntries,
8
- meta,
9
- metaByEntries,
10
- mountId,
11
- title,
12
- titleByEntries,
13
- templateParameters,
14
- templateParametersByEntries,
15
- crossorigin
16
- } = config.output;
1
+ export function createHtmlConfig(config) {
2
+ const { disableHtmlFolder, favicon, faviconByEntries, inject, injectByEntries, meta, metaByEntries, mountId, title, titleByEntries, templateParameters, templateParametersByEntries, crossorigin } = config.output;
17
3
  return {
18
4
  disableHtmlFolder,
19
5
  favicon,
@@ -30,6 +16,3 @@ function createHtmlConfig(config) {
30
16
  templateParametersByEntries
31
17
  };
32
18
  }
33
- export {
34
- createHtmlConfig
35
- };
@@ -1,30 +1,5 @@
1
- function createOutputConfig(config) {
2
- const {
3
- assetPrefix,
4
- copy,
5
- cssModuleLocalIdentName,
6
- cssPath,
7
- jsPath,
8
- htmlPath,
9
- mediaPath,
10
- enableTsLoader,
11
- path,
12
- disableInlineRuntimeChunk,
13
- disableCssExtract,
14
- disableMinimize,
15
- disableSourceMap,
16
- disableTsChecker,
17
- enableCssModuleTSDeclaration,
18
- enableInlineScripts,
19
- enableInlineStyles,
20
- polyfill,
21
- dataUriLimit,
22
- disableAssetsCache,
23
- enableLatestDecorators,
24
- disableCssModuleExtension,
25
- ssg,
26
- disableNodePolyfill
27
- } = config.output;
1
+ export function createOutputConfig(config) {
2
+ const { assetPrefix, copy, cssModuleLocalIdentName, cssPath, jsPath, htmlPath, mediaPath, enableTsLoader, path, disableInlineRuntimeChunk, disableCssExtract, disableMinimize, disableSourceMap, disableTsChecker, enableCssModuleTSDeclaration, enableInlineScripts, enableInlineStyles, polyfill, dataUriLimit, disableAssetsCache, enableLatestDecorators, disableCssModuleExtension, ssg, disableNodePolyfill } = config.output;
28
3
  return {
29
4
  assetPrefix,
30
5
  copy,
@@ -65,6 +40,3 @@ function createOutputConfig(config) {
65
40
  disableNodePolyfill
66
41
  };
67
42
  }
68
- export {
69
- createOutputConfig
70
- };
@@ -1,17 +1,5 @@
1
- function createSourceConfig(config) {
2
- const {
3
- alias,
4
- envVars,
5
- globalVars,
6
- include,
7
- moduleScopes,
8
- preEntry,
9
- entries,
10
- enableAsyncEntry,
11
- disableDefaultEntries,
12
- entriesDir,
13
- configDir
14
- } = config.source;
1
+ export function createSourceConfig(config) {
2
+ const { alias, envVars, globalVars, include, moduleScopes, preEntry, entries, enableAsyncEntry, disableDefaultEntries, entriesDir, configDir } = config.source;
15
3
  const builderGlobalVars = globalVars || {};
16
4
  for (const envVar of envVars || []) {
17
5
  const envVarValue = process.env[envVar];
@@ -34,6 +22,3 @@ function createSourceConfig(config) {
34
22
  }
35
23
  };
36
24
  }
37
- export {
38
- createSourceConfig
39
- };
@@ -1,22 +1,5 @@
1
- function createToolsConfig(config) {
2
- const {
3
- autoprefixer,
4
- babel,
5
- minifyCss,
6
- terser,
7
- webpack,
8
- webpackChain,
9
- tsLoader,
10
- styledComponents,
11
- sass,
12
- postcss,
13
- less,
14
- htmlPlugin,
15
- devServer,
16
- tailwindcss,
17
- jest,
18
- esbuild
19
- } = config.tools;
1
+ export function createToolsConfig(config) {
2
+ const { autoprefixer, babel, minifyCss, terser, webpack, webpackChain, tsLoader, styledComponents, sass, postcss, less, htmlPlugin, devServer, tailwindcss, jest, esbuild } = config.tools;
20
3
  const { enableTsLoader } = config.output;
21
4
  return {
22
5
  tsLoader: enableTsLoader ? tsLoader : void 0,
@@ -40,6 +23,3 @@ function createToolsConfig(config) {
40
23
  }
41
24
  };
42
25
  }
43
- export {
44
- createToolsConfig
45
- };
@@ -2,23 +2,12 @@ import { createToolsConfig } from "./createToolsConfig";
2
2
  import { createSourceConfig } from "./createSourceConfig";
3
3
  import { createOutputConfig } from "./createOutputConfig";
4
4
  import { createHtmlConfig } from "./createHtmlConfig";
5
- function transformNormalizedConfig(config) {
5
+ export function transformNormalizedConfig(config) {
6
6
  const html = createHtmlConfig(config);
7
7
  const output = createOutputConfig(config);
8
8
  const source = createSourceConfig(config);
9
9
  const tools = createToolsConfig(config);
10
- const {
11
- bff,
12
- dev,
13
- deploy,
14
- runtime,
15
- runtimeByEntries,
16
- server,
17
- cliOptions,
18
- plugins,
19
- testing,
20
- autoLoadPlugins
21
- } = config;
10
+ const { bff, dev, deploy, runtime, runtimeByEntries, server, cliOptions, plugins, testing, autoLoadPlugins } = config;
22
11
  return {
23
12
  source,
24
13
  html,
@@ -43,10 +32,6 @@ function transformNormalizedConfig(config) {
43
32
  }
44
33
  };
45
34
  }
46
- function checkIsLegacyConfig(config) {
35
+ export function checkIsLegacyConfig(config) {
47
36
  return Boolean(config.legacy);
48
37
  }
49
- export {
50
- checkIsLegacyConfig,
51
- transformNormalizedConfig
52
- };
@@ -1,13 +1,7 @@
1
- const defineConfig = (config) => config;
2
- const defineLegacyConfig = (config) => {
3
- var _a;
4
- return {
5
- ...config,
6
- legacy: true,
7
- autoLoadPlugins: (_a = config.autoLoadPlugins) != null ? _a : true
8
- };
9
- };
10
- export {
11
- defineConfig,
12
- defineLegacyConfig
13
- };
1
+ export const defineConfig = (config) => config;
2
+ var _config_autoLoadPlugins;
3
+ export const defineLegacyConfig = (config) => ({
4
+ ...config,
5
+ legacy: true,
6
+ autoLoadPlugins: (_config_autoLoadPlugins = config.autoLoadPlugins) !== null && _config_autoLoadPlugins !== void 0 ? _config_autoLoadPlugins : true
7
+ });
@@ -1,4 +1 @@
1
- import { defineServerConfig } from "../utils/config";
2
- export {
3
- defineServerConfig as defineConfig
4
- };
1
+ export { defineServerConfig as defineConfig } from "../utils/config";
@@ -1,9 +1,5 @@
1
- import {
2
- createAsyncWaterfall,
3
- createAsyncWorkflow,
4
- createParallelWorkflow
5
- } from "@modern-js/plugin";
6
- const hooks = {
1
+ import { createAsyncWaterfall, createAsyncWorkflow, createParallelWorkflow } from "@modern-js/plugin";
2
+ export const hooks = {
7
3
  modifyEntryExport: createAsyncWaterfall(),
8
4
  modifyEntryImports: createAsyncWaterfall(),
9
5
  modifyEntryRuntimePlugins: createAsyncWaterfall(),
@@ -30,6 +26,3 @@ const hooks = {
30
26
  registerBuildPlatform: createParallelWorkflow(),
31
27
  beforeBuildPlatform: createParallelWorkflow()
32
28
  };
33
- export {
34
- hooks
35
- };
@@ -1,11 +1,6 @@
1
1
  import path from "path";
2
2
  import lintPlugin from "@modern-js/plugin-lint";
3
- import {
4
- cleanRequireCache,
5
- emptyDir,
6
- Import,
7
- getCommand
8
- } from "@modern-js/utils";
3
+ import { cleanRequireCache, emptyDir, Import, getCommand } from "@modern-js/utils";
9
4
  import { castArray } from "@modern-js/utils/lodash";
10
5
  import { getLocaleLanguage } from "@modern-js/plugin-i18n/language-detector";
11
6
  import analyzePlugin from "./analyze";
@@ -14,14 +9,11 @@ import { hooks } from "./hooks";
14
9
  import { i18n, localeKeys } from "./locale";
15
10
  import { restart } from "./utils/restart";
16
11
  import { generateWatchFiles } from "./utils/generateWatchFiles";
17
- import { mergeConfig } from "@modern-js/core";
12
+ export { mergeConfig } from "@modern-js/core";
18
13
  export * from "./defineConfig";
19
14
  export * from "./types";
20
- const upgradeModel = Import.lazy(
21
- "@modern-js/upgrade",
22
- require
23
- );
24
- const devCommand = async (program, api) => {
15
+ const upgradeModel = Import.lazy("@modern-js/upgrade", require);
16
+ export const devCommand = async (program, api) => {
25
17
  const runner = api.useHookRunners();
26
18
  const devToolMetas = await runner.registerDev();
27
19
  const devProgram = program.command("dev").alias("start").usage("[options]").description(i18n.t(localeKeys.command.dev.describe)).option("-c --config <config>", i18n.t(localeKeys.command.shared.config)).option("-e --entry [entry...]", i18n.t(localeKeys.command.dev.entry)).option("--analyze", i18n.t(localeKeys.command.shared.analyze)).option("--api-only", i18n.t(localeKeys.command.dev.apiOnly)).option("--web-only", i18n.t(localeKeys.command.dev.webOnly)).action(async (options) => {
@@ -44,7 +36,7 @@ const devCommand = async (program, api) => {
44
36
  }
45
37
  }
46
38
  };
47
- const buildCommand = async (program, api) => {
39
+ export const buildCommand = async (program, api) => {
48
40
  const runner = api.useHookRunners();
49
41
  const platformBuilders = await runner.registerBuildPlatform();
50
42
  const buildProgram = program.command("build").usage("[options]").description(i18n.t(localeKeys.command.build.describe)).option("-c --config <config>", i18n.t(localeKeys.command.shared.config)).option("--analyze", i18n.t(localeKeys.command.shared.analyze)).action(async (options) => {
@@ -65,114 +57,97 @@ const buildCommand = async (program, api) => {
65
57
  }
66
58
  }
67
59
  };
68
- var src_default = (options = {
60
+ export default (options = {
69
61
  bundler: "webpack"
70
- }) => ({
71
- name: "@modern-js/app-tools",
72
- post: [
73
- "@modern-js/plugin-initialize",
74
- "@modern-js/plugin-analyze",
75
- "@modern-js/plugin-ssr",
76
- "@modern-js/plugin-document",
77
- "@modern-js/plugin-state",
78
- "@modern-js/plugin-router",
79
- "@modern-js/plugin-router-v5",
80
- "@modern-js/plugin-polyfill"
81
- ],
82
- registerHook: hooks,
83
- usePlugins: [
84
- initializePlugin({
85
- bundler: (options == null ? void 0 : options.bundler) === "experimental-rspack" ? "rspack" : "webpack"
86
- }),
87
- analyzePlugin({
88
- bundler: (options == null ? void 0 : options.bundler) === "experimental-rspack" ? "rspack" : "webpack"
89
- }),
90
- lintPlugin()
91
- ],
92
- setup: (api) => {
93
- const locale = getLocaleLanguage();
94
- i18n.changeLanguage({ locale });
95
- return {
96
- async commands({ program }) {
97
- await devCommand(program, api);
98
- await buildCommand(program, api);
99
- program.command("serve").usage("[options]").description(i18n.t(localeKeys.command.serve.describe)).option("--api-only", i18n.t(localeKeys.command.dev.apiOnly)).option(
100
- "-c --config <config>",
101
- i18n.t(localeKeys.command.shared.config)
102
- ).action(async () => {
103
- const { start } = await import("./commands/serve");
104
- await start(api);
105
- });
106
- program.command("deploy").usage("[options]").option(
107
- "-c --config <config>",
108
- i18n.t(localeKeys.command.shared.config)
109
- ).description(i18n.t(localeKeys.command.deploy.describe)).action(async (options2) => {
110
- const { build } = await import("./commands/build");
111
- await build(api);
112
- const { deploy } = await import("./commands/deploy");
113
- await deploy(api, options2);
114
- process.exit(0);
115
- });
116
- program.command("new").usage("[options]").description(i18n.t(localeKeys.command.new.describe)).option("--lang <lang>", i18n.t(localeKeys.command.new.lang)).option("-d, --debug", i18n.t(localeKeys.command.new.debug), false).option(
117
- "-c, --config <config>",
118
- i18n.t(localeKeys.command.new.config)
119
- ).option("--dist-tag <tag>", i18n.t(localeKeys.command.new.distTag)).option("--registry", i18n.t(localeKeys.command.new.registry)).action(async (options2) => {
120
- const { MWANewAction } = await import("@modern-js/new-action");
121
- await MWANewAction({ ...options2, locale: options2.lang || locale });
122
- });
123
- program.command("inspect").description("inspect the internal configs").option(
124
- `--env <env>`,
125
- i18n.t(localeKeys.command.inspect.env),
126
- "development"
127
- ).option(
128
- "--output <output>",
129
- i18n.t(localeKeys.command.inspect.output),
130
- "/"
131
- ).option("--verbose", i18n.t(localeKeys.command.inspect.verbose)).option(
132
- "-c --config <config>",
133
- i18n.t(localeKeys.command.shared.config)
134
- ).action(async (options2) => {
135
- const { inspect } = await import("./commands/inspect");
136
- inspect(api, options2);
137
- });
138
- upgradeModel.defineCommand(program.command("upgrade"));
139
- },
140
- async prepare() {
141
- const command = getCommand();
142
- if (command === "dev" || command === "start" || command === "build" || command === "deploy") {
143
- const resolvedConfig = api.useResolvedConfigContext();
144
- if (resolvedConfig.output.cleanDistPath) {
145
- const appContext = api.useAppContext();
146
- await emptyDir(appContext.distDirectory);
62
+ }) => {
63
+ return {
64
+ name: "@modern-js/app-tools",
65
+ post: [
66
+ "@modern-js/plugin-initialize",
67
+ "@modern-js/plugin-analyze",
68
+ "@modern-js/plugin-ssr",
69
+ "@modern-js/plugin-document",
70
+ "@modern-js/plugin-state",
71
+ "@modern-js/plugin-router",
72
+ "@modern-js/plugin-router-v5",
73
+ "@modern-js/plugin-polyfill"
74
+ ],
75
+ registerHook: hooks,
76
+ usePlugins: [
77
+ initializePlugin({
78
+ bundler: (options === null || options === void 0 ? void 0 : options.bundler) === "experimental-rspack" ? "rspack" : "webpack"
79
+ }),
80
+ analyzePlugin({
81
+ bundler: (options === null || options === void 0 ? void 0 : options.bundler) === "experimental-rspack" ? "rspack" : "webpack"
82
+ }),
83
+ lintPlugin()
84
+ ],
85
+ setup: (api) => {
86
+ const locale = getLocaleLanguage();
87
+ i18n.changeLanguage({
88
+ locale
89
+ });
90
+ return {
91
+ async commands({ program }) {
92
+ await devCommand(program, api);
93
+ await buildCommand(program, api);
94
+ program.command("serve").usage("[options]").description(i18n.t(localeKeys.command.serve.describe)).option("--api-only", i18n.t(localeKeys.command.dev.apiOnly)).option("-c --config <config>", i18n.t(localeKeys.command.shared.config)).action(async () => {
95
+ const { start } = await import("./commands/serve");
96
+ await start(api);
97
+ });
98
+ program.command("deploy").usage("[options]").option("-c --config <config>", i18n.t(localeKeys.command.shared.config)).description(i18n.t(localeKeys.command.deploy.describe)).action(async (options2) => {
99
+ const { build } = await import("./commands/build");
100
+ await build(api);
101
+ const { deploy } = await import("./commands/deploy");
102
+ await deploy(api, options2);
103
+ process.exit(0);
104
+ });
105
+ program.command("new").usage("[options]").description(i18n.t(localeKeys.command.new.describe)).option("--lang <lang>", i18n.t(localeKeys.command.new.lang)).option("-c, --config <config>", i18n.t(localeKeys.command.new.config)).option("-d, --debug", i18n.t(localeKeys.command.new.debug), false).option("--dist-tag <tag>", i18n.t(localeKeys.command.new.distTag)).option("--registry", i18n.t(localeKeys.command.new.registry)).action(async (options2) => {
106
+ const { MWANewAction } = await import("@modern-js/new-action");
107
+ await MWANewAction({
108
+ ...options2,
109
+ locale: options2.lang || locale
110
+ });
111
+ });
112
+ program.command("inspect").description("inspect the internal configs").option(`--env <env>`, i18n.t(localeKeys.command.inspect.env), "development").option("--output <output>", i18n.t(localeKeys.command.inspect.output), "/").option("--verbose", i18n.t(localeKeys.command.inspect.verbose)).option("-c --config <config>", i18n.t(localeKeys.command.shared.config)).action(async (options2) => {
113
+ const { inspect } = await import("./commands/inspect");
114
+ inspect(api, options2);
115
+ });
116
+ upgradeModel.defineCommand(program.command("upgrade"));
117
+ },
118
+ async prepare() {
119
+ const command = getCommand();
120
+ if (command === "dev" || command === "start" || command === "build" || command === "deploy") {
121
+ const resolvedConfig = api.useResolvedConfigContext();
122
+ if (resolvedConfig.output.cleanDistPath) {
123
+ const appContext = api.useAppContext();
124
+ await emptyDir(appContext.distDirectory);
125
+ }
147
126
  }
127
+ },
128
+ async watchFiles() {
129
+ const appContext = api.useAppContext();
130
+ const config = api.useResolvedConfigContext();
131
+ return generateWatchFiles(appContext, config.source.configDir);
132
+ },
133
+ // 这里会被 core/initWatcher 监听的文件变动触发,如果是 src 目录下的文件变动,则不做 restart
134
+ async fileChange(e) {
135
+ const { filename, eventType } = e;
136
+ const appContext = api.useAppContext();
137
+ const { appDirectory, srcDirectory } = appContext;
138
+ const absolutePath = path.resolve(appDirectory, filename);
139
+ if (!absolutePath.includes(srcDirectory) && (eventType === "change" || eventType === "unlink")) {
140
+ const { closeServer } = await import("./utils/createServer");
141
+ await closeServer();
142
+ await restart(api.useHookRunners(), filename);
143
+ }
144
+ },
145
+ async beforeRestart() {
146
+ cleanRequireCache([
147
+ require.resolve("./analyze")
148
+ ]);
148
149
  }
149
- },
150
- async watchFiles() {
151
- const appContext = api.useAppContext();
152
- const config = api.useResolvedConfigContext();
153
- return generateWatchFiles(appContext, config.source.configDir);
154
- },
155
- // 这里会被 core/initWatcher 监听的文件变动触发,如果是 src 目录下的文件变动,则不做 restart
156
- async fileChange(e) {
157
- const { filename, eventType } = e;
158
- const appContext = api.useAppContext();
159
- const { appDirectory, srcDirectory } = appContext;
160
- const absolutePath = path.resolve(appDirectory, filename);
161
- if (!absolutePath.includes(srcDirectory) && (eventType === "change" || eventType === "unlink")) {
162
- const { closeServer } = await import("./utils/createServer");
163
- await closeServer();
164
- await restart(api.useHookRunners(), filename);
165
- }
166
- },
167
- async beforeRestart() {
168
- cleanRequireCache([require.resolve("./analyze")]);
169
- }
170
- };
171
- }
172
- });
173
- export {
174
- buildCommand,
175
- src_default as default,
176
- devCommand,
177
- mergeConfig
150
+ };
151
+ }
152
+ };
178
153
  };