@modern-js/app-tools 2.0.0-beta.3 → 2.0.0-beta.6

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 (261) hide show
  1. package/CHANGELOG.md +619 -0
  2. package/bin/modern.js +3 -0
  3. package/dist/js/modern/analyze/Builder.js +39 -0
  4. package/dist/js/modern/analyze/constants.js +48 -18
  5. package/dist/js/modern/analyze/generateCode.js +264 -225
  6. package/dist/js/modern/analyze/getBundleEntry.js +34 -32
  7. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +99 -52
  8. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +89 -47
  9. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -2
  10. package/dist/js/modern/analyze/getClientRoutes/utils.js +23 -10
  11. package/dist/js/modern/analyze/getFileSystemEntry.js +52 -23
  12. package/dist/js/modern/analyze/getHtmlTemplate.js +89 -49
  13. package/dist/js/modern/analyze/getServerRoutes.js +122 -126
  14. package/dist/js/modern/analyze/index.js +204 -161
  15. package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -16
  16. package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -11
  17. package/dist/js/modern/analyze/nestedRoutes.js +118 -65
  18. package/dist/js/modern/analyze/templates.js +170 -81
  19. package/dist/js/modern/analyze/utils.js +104 -67
  20. package/dist/js/modern/builder/builderPlugins/compatModern.js +128 -109
  21. package/dist/js/modern/builder/index.js +120 -89
  22. package/dist/js/modern/builder/loaders/routerLoader.js +9 -12
  23. package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -1
  24. package/dist/js/modern/builder/share.js +23 -21
  25. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +23 -22
  26. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +31 -27
  27. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +100 -84
  28. package/dist/js/modern/commands/build.js +67 -42
  29. package/dist/js/modern/commands/deploy.js +27 -4
  30. package/dist/js/modern/commands/dev.js +81 -34
  31. package/dist/js/modern/commands/index.js +1 -1
  32. package/dist/js/modern/commands/inspect.js +30 -5
  33. package/dist/js/modern/commands/serve.js +54 -0
  34. package/dist/js/modern/config/default.js +112 -145
  35. package/dist/js/modern/config/index.js +8 -2
  36. package/dist/js/modern/config/initial/createHtmlConfig.js +5 -2
  37. package/dist/js/modern/config/initial/createOutputConfig.js +10 -13
  38. package/dist/js/modern/config/initial/createSourceConfig.js +10 -3
  39. package/dist/js/modern/config/initial/createToolsConfig.js +7 -6
  40. package/dist/js/modern/config/initial/index.js +9 -4
  41. package/dist/js/modern/config/initial/inits.js +109 -73
  42. package/dist/js/modern/config/initial/transformNormalizedConfig.js +11 -4
  43. package/dist/js/modern/defineConfig.js +26 -11
  44. package/dist/js/modern/exports/server.js +4 -1
  45. package/dist/js/modern/hooks.js +16 -4
  46. package/dist/js/modern/index.js +178 -90
  47. package/dist/js/modern/initialize/index.js +100 -52
  48. package/dist/js/modern/locale/en.js +20 -21
  49. package/dist/js/modern/locale/index.js +6 -6
  50. package/dist/js/modern/locale/zh.js +21 -22
  51. package/dist/js/modern/schema/Schema.js +6 -5
  52. package/dist/js/modern/schema/index.js +53 -100
  53. package/dist/js/modern/schema/legacy.js +96 -231
  54. package/dist/js/modern/types/config/index.js +0 -1
  55. package/dist/js/modern/types/index.js +0 -1
  56. package/dist/js/modern/types/legacyConfig/output.js +0 -1
  57. package/dist/js/modern/utils/commands.js +10 -2
  58. package/dist/js/modern/utils/config.js +102 -41
  59. package/dist/js/modern/utils/createFileWatcher.js +84 -51
  60. package/dist/js/modern/utils/createServer.js +63 -17
  61. package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
  62. package/dist/js/modern/utils/getSpecifiedEntries.js +46 -19
  63. package/dist/js/modern/utils/language.js +6 -3
  64. package/dist/js/modern/utils/printInstructions.js +27 -8
  65. package/dist/js/modern/utils/restart.js +43 -16
  66. package/dist/js/modern/utils/routes.js +29 -12
  67. package/dist/js/node/analyze/Builder.js +64 -0
  68. package/dist/js/node/analyze/constants.js +86 -39
  69. package/dist/js/node/analyze/generateCode.js +285 -239
  70. package/dist/js/node/analyze/getBundleEntry.js +62 -44
  71. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +138 -77
  72. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +130 -74
  73. package/dist/js/node/analyze/getClientRoutes/index.js +27 -16
  74. package/dist/js/node/analyze/getClientRoutes/utils.js +51 -21
  75. package/dist/js/node/analyze/getFileSystemEntry.js +82 -39
  76. package/dist/js/node/analyze/getHtmlTemplate.js +120 -61
  77. package/dist/js/node/analyze/getServerRoutes.js +145 -137
  78. package/dist/js/node/analyze/index.js +233 -174
  79. package/dist/js/node/analyze/isDefaultExportFunction.js +59 -26
  80. package/dist/js/node/analyze/makeLegalIdentifier.js +31 -15
  81. package/dist/js/node/analyze/nestedRoutes.js +150 -79
  82. package/dist/js/node/analyze/templates.js +198 -90
  83. package/dist/js/node/analyze/utils.js +136 -81
  84. package/dist/js/node/builder/builderPlugins/compatModern.js +158 -122
  85. package/dist/js/node/builder/index.js +142 -98
  86. package/dist/js/node/builder/loaders/routerLoader.js +29 -18
  87. package/dist/js/node/builder/loaders/serverModuleLoader.js +24 -7
  88. package/dist/js/node/builder/share.js +50 -26
  89. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +43 -26
  90. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +51 -31
  91. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +120 -90
  92. package/dist/js/node/commands/build.js +91 -52
  93. package/dist/js/node/commands/deploy.js +49 -10
  94. package/dist/js/node/commands/dev.js +105 -48
  95. package/dist/js/node/commands/index.js +19 -38
  96. package/dist/js/node/commands/inspect.js +52 -11
  97. package/dist/js/node/commands/serve.js +83 -0
  98. package/dist/js/node/config/default.js +131 -149
  99. package/dist/js/node/config/index.js +31 -28
  100. package/dist/js/node/config/initial/createHtmlConfig.js +26 -6
  101. package/dist/js/node/config/initial/createOutputConfig.js +31 -17
  102. package/dist/js/node/config/initial/createSourceConfig.js +31 -7
  103. package/dist/js/node/config/initial/createToolsConfig.js +28 -10
  104. package/dist/js/node/config/initial/index.js +34 -17
  105. package/dist/js/node/config/initial/inits.js +130 -81
  106. package/dist/js/node/config/initial/transformNormalizedConfig.js +40 -16
  107. package/dist/js/node/defineConfig.js +46 -17
  108. package/dist/js/node/exports/server.js +25 -10
  109. package/dist/js/node/hooks.js +53 -29
  110. package/dist/js/node/index.js +213 -129
  111. package/dist/js/node/initialize/index.js +117 -61
  112. package/dist/js/node/locale/en.js +40 -25
  113. package/dist/js/node/locale/index.js +31 -14
  114. package/dist/js/node/locale/zh.js +41 -26
  115. package/dist/js/node/schema/Schema.js +27 -10
  116. package/dist/js/node/schema/index.js +84 -114
  117. package/dist/js/node/schema/legacy.js +119 -240
  118. package/dist/js/node/types/config/deploy.js +15 -0
  119. package/dist/js/node/types/config/dev.js +15 -0
  120. package/dist/js/node/types/config/experiments.js +15 -0
  121. package/dist/js/node/types/config/html.js +15 -0
  122. package/dist/js/node/types/config/index.js +17 -16
  123. package/dist/js/node/types/config/output.js +15 -0
  124. package/dist/js/node/types/config/performance.js +15 -0
  125. package/dist/js/node/types/config/security.js +15 -0
  126. package/dist/js/node/types/config/source.js +15 -0
  127. package/dist/js/node/types/config/tools.js +15 -0
  128. package/dist/js/node/types/hooks.js +15 -0
  129. package/dist/js/node/types/index.js +19 -38
  130. package/dist/js/node/types/legacyConfig/deploy.js +15 -0
  131. package/dist/js/node/types/legacyConfig/dev.js +15 -0
  132. package/dist/js/node/types/legacyConfig/index.js +15 -0
  133. package/dist/js/node/types/legacyConfig/output.js +15 -5
  134. package/dist/js/node/types/legacyConfig/source.js +15 -0
  135. package/dist/js/node/types/legacyConfig/tools.js +15 -0
  136. package/dist/js/node/utils/commands.js +31 -6
  137. package/dist/js/node/utils/config.js +125 -51
  138. package/dist/js/node/utils/createFileWatcher.js +109 -61
  139. package/dist/js/node/utils/createServer.js +92 -25
  140. package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
  141. package/dist/js/node/utils/getSpecifiedEntries.js +68 -25
  142. package/dist/js/node/utils/language.js +28 -8
  143. package/dist/js/node/utils/printInstructions.js +51 -16
  144. package/dist/js/node/utils/restart.js +65 -21
  145. package/dist/js/node/utils/routes.js +58 -19
  146. package/dist/js/node/utils/types.js +15 -0
  147. package/dist/js/treeshaking/analyze/Builder.js +199 -0
  148. package/dist/js/treeshaking/analyze/constants.js +37 -18
  149. package/dist/js/treeshaking/analyze/generateCode.js +597 -407
  150. package/dist/js/treeshaking/analyze/getBundleEntry.js +55 -63
  151. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +217 -168
  152. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  153. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  154. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  155. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +97 -86
  156. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  157. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -147
  158. package/dist/js/treeshaking/analyze/index.js +575 -305
  159. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  160. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  161. package/dist/js/treeshaking/analyze/nestedRoutes.js +419 -201
  162. package/dist/js/treeshaking/analyze/templates.js +438 -236
  163. package/dist/js/treeshaking/analyze/utils.js +367 -153
  164. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +285 -199
  165. package/dist/js/treeshaking/builder/index.js +365 -165
  166. package/dist/js/treeshaking/builder/loaders/routerLoader.js +11 -12
  167. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +3 -2
  168. package/dist/js/treeshaking/builder/share.js +38 -44
  169. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  170. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  171. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +334 -112
  172. package/dist/js/treeshaking/commands/build.js +286 -88
  173. package/dist/js/treeshaking/commands/deploy.js +153 -25
  174. package/dist/js/treeshaking/commands/dev.js +313 -131
  175. package/dist/js/treeshaking/commands/index.js +1 -1
  176. package/dist/js/treeshaking/commands/inspect.js +147 -32
  177. package/dist/js/treeshaking/commands/serve.js +199 -0
  178. package/dist/js/treeshaking/config/default.js +207 -198
  179. package/dist/js/treeshaking/config/index.js +3 -2
  180. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  181. package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -70
  182. package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -40
  183. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  184. package/dist/js/treeshaking/config/initial/index.js +10 -9
  185. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  186. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +31 -34
  187. package/dist/js/treeshaking/defineConfig.js +60 -13
  188. package/dist/js/treeshaking/exports/server.js +2 -1
  189. package/dist/js/treeshaking/hooks.js +31 -25
  190. package/dist/js/treeshaking/index.js +681 -256
  191. package/dist/js/treeshaking/initialize/index.js +292 -113
  192. package/dist/js/treeshaking/locale/en.js +34 -33
  193. package/dist/js/treeshaking/locale/index.js +5 -5
  194. package/dist/js/treeshaking/locale/zh.js +34 -33
  195. package/dist/js/treeshaking/schema/Schema.js +267 -69
  196. package/dist/js/treeshaking/schema/index.js +171 -121
  197. package/dist/js/treeshaking/schema/legacy.js +323 -256
  198. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  199. package/dist/js/treeshaking/types/config/dev.js +1 -0
  200. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  201. package/dist/js/treeshaking/types/config/html.js +1 -0
  202. package/dist/js/treeshaking/types/config/index.js +0 -1
  203. package/dist/js/treeshaking/types/config/output.js +1 -0
  204. package/dist/js/treeshaking/types/config/performance.js +1 -0
  205. package/dist/js/treeshaking/types/config/security.js +1 -0
  206. package/dist/js/treeshaking/types/config/source.js +1 -0
  207. package/dist/js/treeshaking/types/config/tools.js +1 -0
  208. package/dist/js/treeshaking/types/hooks.js +1 -0
  209. package/dist/js/treeshaking/types/index.js +0 -1
  210. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  211. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  212. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  213. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  214. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  215. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  216. package/dist/js/treeshaking/utils/commands.js +10 -5
  217. package/dist/js/treeshaking/utils/config.js +295 -117
  218. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  219. package/dist/js/treeshaking/utils/createServer.js +252 -67
  220. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
  221. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  222. package/dist/js/treeshaking/utils/language.js +6 -5
  223. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  224. package/dist/js/treeshaking/utils/restart.js +184 -42
  225. package/dist/js/treeshaking/utils/routes.js +151 -27
  226. package/dist/js/treeshaking/utils/types.js +1 -0
  227. package/dist/types/analyze/Builder.d.ts +8 -0
  228. package/dist/types/analyze/constants.d.ts +10 -1
  229. package/dist/types/analyze/index.d.ts +2 -0
  230. package/dist/types/analyze/templates.d.ts +3 -1
  231. package/dist/types/analyze/utils.d.ts +2 -1
  232. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  233. package/dist/types/builder/index.d.ts +3 -3
  234. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
  235. package/dist/types/commands/index.d.ts +1 -1
  236. package/dist/types/commands/{start.d.ts → serve.d.ts} +0 -0
  237. package/dist/types/defineConfig.d.ts +1 -0
  238. package/dist/types/index.d.ts +7 -1
  239. package/dist/types/initialize/index.d.ts +2 -0
  240. package/dist/types/locale/en.d.ts +1 -1
  241. package/dist/types/locale/index.d.ts +2 -2
  242. package/dist/types/locale/zh.d.ts +1 -1
  243. package/dist/types/types/config/dev.d.ts +2 -2
  244. package/dist/types/types/config/index.d.ts +4 -0
  245. package/dist/types/types/config/output.d.ts +0 -1
  246. package/dist/types/types/config/source.d.ts +2 -0
  247. package/dist/types/types/config/tools.d.ts +2 -0
  248. package/dist/types/types/hooks.d.ts +8 -0
  249. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  250. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  251. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  252. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  253. package/dist/types/utils/commands.d.ts +2 -1
  254. package/dist/types/utils/config.d.ts +1 -0
  255. package/dist/types/utils/createServer.d.ts +1 -0
  256. package/dist/types/utils/getServerInternalPlugins.d.ts +2 -0
  257. package/dist/types/utils/restart.d.ts +1 -1
  258. package/package.json +26 -22
  259. package/dist/js/modern/commands/start.js +0 -30
  260. package/dist/js/node/commands/start.js +0 -38
  261. package/dist/js/treeshaking/commands/start.js +0 -69
@@ -1,84 +1,114 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- import { createBuilder } from '@modern-js/builder';
5
- import { builderWebpackProvider } from '@modern-js/builder-webpack-provider';
6
- import { applyOptionsChain, isUseSSRBundle } from '@modern-js/utils';
7
- import { PluginCompatModern } from "./builderPlugins/compatModern";
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import {
41
+ createBuilder
42
+ } from "@modern-js/builder";
43
+ import {
44
+ builderWebpackProvider
45
+ } from "@modern-js/builder-webpack-provider";
46
+ import { applyOptionsChain, isUseSSRBundle } from "@modern-js/utils";
47
+ import {
48
+ PluginCompatModern
49
+ } from "./builderPlugins/compatModern";
8
50
  import { createCopyPattern } from "./share";
9
51
  function getBuilderTargets(normalizedConfig) {
10
- const targets = ['web'];
11
- if (normalizedConfig.output.enableModernMode && !targets.includes('modern-web')) {
12
- targets.push('modern-web');
13
- }
52
+ const targets = ["web"];
14
53
  if (isUseSSRBundle(normalizedConfig)) {
15
- targets.push('node');
54
+ targets.push("node");
16
55
  }
17
56
  return targets;
18
57
  }
19
- export async function createBuilderForEdenX({
20
- normalizedConfig,
21
- appContext,
22
- compatPluginConfig
23
- }) {
24
- // create webpack provider
25
- const builderConfig = createBuilderProviderConfig(normalizedConfig, appContext);
26
- const webpackProvider = builderWebpackProvider({
27
- builderConfig
58
+ function createBuilderForModern(_0) {
59
+ return __async(this, arguments, function* ({
60
+ normalizedConfig,
61
+ appContext,
62
+ compatPluginConfig
63
+ }) {
64
+ const builderConfig = createBuilderProviderConfig(
65
+ normalizedConfig,
66
+ appContext
67
+ );
68
+ const webpackProvider = builderWebpackProvider({
69
+ builderConfig
70
+ });
71
+ const target = getBuilderTargets(normalizedConfig);
72
+ const builderOptions = createBuilderOptions(target, appContext);
73
+ const builder = yield createBuilder(webpackProvider, builderOptions);
74
+ yield applyBuilderPlugins(
75
+ builder,
76
+ normalizedConfig,
77
+ appContext,
78
+ compatPluginConfig
79
+ );
80
+ return builder;
28
81
  });
29
- const target = getBuilderTargets(normalizedConfig);
30
- const builderOptions = createBuilderOptions(target, appContext);
31
- const builder = await createBuilder(webpackProvider, builderOptions);
32
- await applyBuilderPlugins(builder, normalizedConfig, appContext, compatPluginConfig);
33
- return builder;
34
82
  }
35
- export function createBuilderProviderConfig(normalizedConfig, appContext) {
36
- var _normalizedConfig$ser;
83
+ function createBuilderProviderConfig(normalizedConfig, appContext) {
84
+ var _a;
37
85
  const output = createOutputConfig(normalizedConfig, appContext);
38
- return _objectSpread(_objectSpread({}, normalizedConfig), {}, {
39
- source: _objectSpread(_objectSpread({}, normalizedConfig.source), {}, {
40
- resolveExtensionPrefix: '.web'
41
- }),
86
+ const htmlConfig = __spreadValues({}, normalizedConfig.html);
87
+ if (!htmlConfig.template) {
88
+ htmlConfig.templateByEntries = __spreadValues(__spreadValues({}, htmlConfig.templateByEntries), appContext.htmlTemplates);
89
+ }
90
+ return __spreadProps(__spreadValues({}, normalizedConfig), {
42
91
  output,
43
- dev: {
44
- port: (_normalizedConfig$ser = normalizedConfig.server) === null || _normalizedConfig$ser === void 0 ? void 0 : _normalizedConfig$ser.port,
45
- https: normalizedConfig.dev.https,
46
- assetPrefix: normalizedConfig.dev.assetPrefix
47
- },
48
- html: _objectSpread(_objectSpread({}, normalizedConfig.html), {}, {
49
- templateByEntries: normalizedConfig.html.templateByEntries || appContext.htmlTemplates
92
+ dev: __spreadProps(__spreadValues({}, normalizedConfig.dev), {
93
+ port: (_a = normalizedConfig.server) == null ? void 0 : _a.port
50
94
  }),
51
- performance: _objectSpread(_objectSpread({}, normalizedConfig.performance), {}, {
52
- // `@modern-js/webpack` used to remove moment locale by default
53
- removeMomentLocale: true
54
- })
95
+ html: htmlConfig
55
96
  });
56
- function createOutputConfig(config, appContext) {
57
- const defaultCopyPattern = createCopyPattern(appContext, config, 'upload');
58
- const {
59
- copy
60
- } = config.output;
61
- const copyOptions = Array.isArray(copy) ? copy : copy === null || copy === void 0 ? void 0 : copy.patterns;
62
- const builderCopy = [...(copyOptions || []), defaultCopyPattern];
63
- return _objectSpread(_objectSpread({}, config.output), {}, {
97
+ function createOutputConfig(config, appContext2) {
98
+ const defaultCopyPattern = createCopyPattern(appContext2, config, "upload");
99
+ const { copy } = config.output;
100
+ const copyOptions = Array.isArray(copy) ? copy : copy == null ? void 0 : copy.patterns;
101
+ const builderCopy = [...copyOptions || [], defaultCopyPattern];
102
+ return __spreadProps(__spreadValues({}, config.output), {
64
103
  copy: builderCopy,
65
- // We need to do this in the app-tools prepare hook because some files will be generated into the dist directory in the analyze process
66
104
  cleanDistPath: false
67
105
  });
68
106
  }
69
107
  }
70
- export function createBuilderOptions(target, appContext) {
71
- // create entries
72
-
108
+ function createBuilderOptions(target, appContext) {
73
109
  const entries = {};
74
- const {
75
- entrypoints = [],
76
- checkedEntries
77
- } = appContext;
78
- for (const {
79
- entryName,
80
- entry
81
- } of entrypoints) {
110
+ const { entrypoints = [], checkedEntries } = appContext;
111
+ for (const { entryName, entry } of entrypoints) {
82
112
  if (checkedEntries && !checkedEntries.includes(entryName)) {
83
113
  continue;
84
114
  }
@@ -91,33 +121,34 @@ export function createBuilderOptions(target, appContext) {
91
121
  return {
92
122
  cwd: appContext.appDirectory,
93
123
  target,
94
- configPath: appContext.configFile || undefined,
124
+ configPath: appContext.configFile || void 0,
95
125
  entry: entries,
96
126
  framework: appContext.metaName
97
127
  };
98
128
  }
99
-
100
- /**
101
- * register builder Plugin by condition
102
- */
103
- async function applyBuilderPlugins(builder, normalizedConfig, appContext, compatPluginConfig) {
104
- if (!normalizedConfig.output.disableNodePolyfill) {
105
- const {
106
- PluginNodePolyfill
107
- } = await import('@modern-js/builder-plugin-node-polyfill');
108
- builder.addPlugins([PluginNodePolyfill()]);
109
- }
110
- if (normalizedConfig.tools.esbuild) {
111
- const {
112
- esbuild: esbuildOptions
113
- } = normalizedConfig.tools;
114
- const {
115
- PluginEsbuild
116
- } = await import('@modern-js/builder-plugin-esbuild');
117
- builder.addPlugins([PluginEsbuild({
118
- loader: false,
119
- minimize: applyOptionsChain({}, esbuildOptions)
120
- })]);
121
- }
122
- builder.addPlugins([PluginCompatModern(appContext, normalizedConfig, compatPluginConfig)]);
123
- }
129
+ function applyBuilderPlugins(builder, normalizedConfig, appContext, compatPluginConfig) {
130
+ return __async(this, null, function* () {
131
+ if (!normalizedConfig.output.disableNodePolyfill) {
132
+ const { PluginNodePolyfill } = yield import("@modern-js/builder-plugin-node-polyfill");
133
+ builder.addPlugins([PluginNodePolyfill()]);
134
+ }
135
+ if (normalizedConfig.tools.esbuild) {
136
+ const { esbuild: esbuildOptions } = normalizedConfig.tools;
137
+ const { PluginEsbuild } = yield import("@modern-js/builder-plugin-esbuild");
138
+ builder.addPlugins([
139
+ PluginEsbuild({
140
+ loader: false,
141
+ minimize: applyOptionsChain({}, esbuildOptions)
142
+ })
143
+ ]);
144
+ }
145
+ builder.addPlugins([
146
+ PluginCompatModern(appContext, normalizedConfig, compatPluginConfig)
147
+ ]);
148
+ });
149
+ }
150
+ export {
151
+ createBuilderForModern,
152
+ createBuilderOptions,
153
+ createBuilderProviderConfig
154
+ };
@@ -1,20 +1,17 @@
1
+ import { slash } from "@modern-js/utils";
1
2
  function loader(source) {
2
- // eslint-disable-next-line @babel/no-invalid-this
3
3
  this.cacheable();
4
- // eslint-disable-next-line @babel/no-invalid-this
5
- const {
6
- target
7
- } = this._compiler.options;
8
- if (target === 'node' || Array.isArray(target) && target.includes('node')) {
4
+ const { target } = this._compiler.options;
5
+ if (target === "node" || Array.isArray(target) && target.includes("node")) {
9
6
  return source;
10
7
  }
11
- // eslint-disable-next-line @babel/no-invalid-this
12
- const {
13
- resourcePath
14
- } = this;
8
+ const { resourcePath } = this;
15
9
  const code = `
16
- export { default } from "${resourcePath}";
10
+ export { default } from "${slash(resourcePath)}";
17
11
  `;
18
12
  return code;
19
13
  }
20
- export default loader;
14
+ var routerLoader_default = loader;
15
+ export {
16
+ routerLoader_default as default
17
+ };
@@ -1,4 +1,7 @@
1
1
  function loader() {
2
2
  return `module.exports = {}`;
3
3
  }
4
- export default loader;
4
+ var serverModuleLoader_default = loader;
5
+ export {
6
+ serverModuleLoader_default as default
7
+ };
@@ -1,44 +1,46 @@
1
- import path from 'path';
2
- import { template as lodashTemplate } from '@modern-js/utils/lodash';
3
- import { removeTailSlash } from '@modern-js/utils';
4
- export function createCopyPattern(appContext, config, patternsType, chain) {
5
- const configDir = path.resolve(appContext.appDirectory, config.source.configDir || './config');
6
- const uploadDir = path.posix.join(configDir.replace(/\\/g, '/'), 'upload');
7
- const publicDir = path.posix.join(configDir.replace(/\\/g, '/'), 'public');
1
+ import path from "path";
2
+ import { removeTailSlash } from "@modern-js/utils";
3
+ function createCopyPattern(appContext, config, patternsType, chain) {
4
+ const configDir = path.resolve(
5
+ appContext.appDirectory,
6
+ config.source.configDir || "./config"
7
+ );
8
+ const uploadDir = path.posix.join(configDir.replace(/\\/g, "/"), "upload");
9
+ const publicDir = path.posix.join(configDir.replace(/\\/g, "/"), "public");
8
10
  const minifiedJsRexExp = /\.min\.js/;
9
- const info = file => ({
10
- // If the file name ends with `.min.js`, we assume it's a compressed file.
11
- // So we don't want copy-webpack-plugin to minify it.
12
- // ref: https://github.com/webpack-contrib/copy-webpack-plugin#info
11
+ const info = (file) => ({
13
12
  minimized: minifiedJsRexExp.test(file.sourceFilename)
14
13
  });
15
- if (patternsType === 'public') {
14
+ if (patternsType === "public") {
16
15
  if (!chain) {
17
16
  throw new Error("expect get a webpackChain, but receive 'undefined'");
18
17
  }
19
18
  return {
20
19
  info,
21
- from: '**/*',
22
- to: 'public',
20
+ from: "**/*",
21
+ to: "public",
23
22
  context: publicDir,
24
23
  noErrorOnMissing: true,
25
- // eslint-disable-next-line node/prefer-global/buffer
26
24
  transform: (content, absoluteFrom) => {
27
25
  if (!/\.html?$/.test(absoluteFrom)) {
28
26
  return content;
29
27
  }
30
- return lodashTemplate(content.toString('utf8'))({
31
- assetPrefix: removeTailSlash(chain.output.get('publicPath'))
32
- });
28
+ return content.toString("utf8").replace(
29
+ /<%=\s*assetPrefix\s*%>/g,
30
+ removeTailSlash(chain.output.get("publicPath"))
31
+ );
33
32
  }
34
33
  };
35
34
  } else {
36
35
  return {
37
36
  info,
38
- from: '**/*',
39
- to: 'upload',
37
+ from: "**/*",
38
+ to: "upload",
40
39
  context: uploadDir,
41
40
  noErrorOnMissing: true
42
41
  };
43
42
  }
44
- }
43
+ }
44
+ export {
45
+ createCopyPattern
46
+ };
@@ -1,29 +1,30 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- export class HtmlAsyncChunkPlugin {
1
+ class HtmlAsyncChunkPlugin {
3
2
  constructor(htmlWebpackPlugin) {
4
- _defineProperty(this, "name", void 0);
5
- _defineProperty(this, "htmlWebpackPlugin", void 0);
6
- this.name = 'HtmlAsyncChunkPlugin';
3
+ this.name = "HtmlAsyncChunkPlugin";
7
4
  this.htmlWebpackPlugin = htmlWebpackPlugin;
8
5
  }
9
6
  apply(compiler) {
10
- compiler.hooks.compilation.tap(this.name, compilation => {
11
- const hooks = this.htmlWebpackPlugin.getHooks(compilation);
12
- hooks.alterAssetTagGroups.tap(this.name, assets => {
13
- const tags = [...assets.headTags, ...assets.bodyTags];
14
- for (const tag of tags) {
15
- if (tag.tagName === 'script') {
16
- const {
17
- attributes
18
- } = tag;
19
- if (attributes && attributes.defer === true) {
20
- attributes.async = true;
21
- delete attributes.defer;
7
+ compiler.hooks.compilation.tap(
8
+ this.name,
9
+ (compilation) => {
10
+ const hooks = this.htmlWebpackPlugin.getHooks(compilation);
11
+ hooks.alterAssetTagGroups.tap(this.name, (assets) => {
12
+ const tags = [...assets.headTags, ...assets.bodyTags];
13
+ for (const tag of tags) {
14
+ if (tag.tagName === "script") {
15
+ const { attributes } = tag;
16
+ if (attributes && attributes.defer === true) {
17
+ attributes.async = true;
18
+ delete attributes.defer;
19
+ }
22
20
  }
23
21
  }
24
- }
25
- return assets;
26
- });
27
- });
22
+ return assets;
23
+ });
24
+ }
25
+ );
28
26
  }
29
- }
27
+ }
28
+ export {
29
+ HtmlAsyncChunkPlugin
30
+ };
@@ -1,33 +1,37 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- export class BottomTemplatePlugin {
1
+ class BottomTemplatePlugin {
3
2
  constructor(htmlWebpackPlugin) {
4
- _defineProperty(this, "htmlWebpackPlugin", void 0);
5
- _defineProperty(this, "bottomTemplateReg", /<!--<\?-\s*bottomTemplate\s*\?>-->/);
6
- _defineProperty(this, "bodyRegExp", /(<\/\s*body\s*>)/i);
7
- _defineProperty(this, "name", void 0);
3
+ this.bottomTemplateReg = /<!--<\?-\s*bottomTemplate\s*\?>-->/;
4
+ this.bodyRegExp = /(<\/\s*body\s*>)/i;
8
5
  this.htmlWebpackPlugin = htmlWebpackPlugin;
9
- this.name = 'bottom-template';
6
+ this.name = "bottom-template";
10
7
  }
11
8
  apply(compiler) {
12
- compiler.hooks.compilation.tap(this.name, compilation => {
13
- this.htmlWebpackPlugin.getHooks(compilation).beforeEmit.tap(this.name, data => {
14
- var _data$plugin$options;
15
- if (!((_data$plugin$options = data.plugin.options) !== null && _data$plugin$options !== void 0 && _data$plugin$options.__internal__)) {
16
- return data;
17
- }
18
- // 含有 <!--<?- bottomTemplate ?>--> 占位符时才需要注入 bottom.html
19
- if (this.bottomTemplateReg.test(data.html)) {
20
- // 清空占位符
21
- data.html = data.html.replace(this.bottomTemplateReg, '');
22
- const {
23
- bottomTemplate
24
- } = data.plugin.options;
25
- if (bottomTemplate) {
26
- data.html = data.html.replace(this.bodyRegExp, match => `\n${bottomTemplate}\n${match}`);
9
+ compiler.hooks.compilation.tap(
10
+ this.name,
11
+ (compilation) => {
12
+ this.htmlWebpackPlugin.getHooks(compilation).beforeEmit.tap(this.name, (data) => {
13
+ var _a;
14
+ if (!((_a = data.plugin.options) == null ? void 0 : _a.__internal__)) {
15
+ return data;
16
+ }
17
+ if (this.bottomTemplateReg.test(data.html)) {
18
+ data.html = data.html.replace(this.bottomTemplateReg, "");
19
+ const { bottomTemplate } = data.plugin.options;
20
+ if (bottomTemplate) {
21
+ data.html = data.html.replace(
22
+ this.bodyRegExp,
23
+ (match) => `
24
+ ${bottomTemplate}
25
+ ${match}`
26
+ );
27
+ }
27
28
  }
28
- }
29
- return data;
30
- });
31
- });
29
+ return data;
30
+ });
31
+ }
32
+ );
32
33
  }
33
- }
34
+ }
35
+ export {
36
+ BottomTemplatePlugin
37
+ };