@modern-js/app-tools 2.0.0-beta.2 → 2.0.0-canary.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 (231) hide show
  1. package/CHANGELOG.md +251 -0
  2. package/bin/modern.js +10 -1
  3. package/dist/js/modern/analyze/constants.js +38 -16
  4. package/dist/js/modern/analyze/generateCode.js +271 -211
  5. package/dist/js/modern/analyze/getBundleEntry.js +31 -32
  6. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +93 -49
  7. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +89 -47
  8. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -2
  9. package/dist/js/modern/analyze/getClientRoutes/utils.js +23 -10
  10. package/dist/js/modern/analyze/getFileSystemEntry.js +43 -22
  11. package/dist/js/modern/analyze/getHtmlTemplate.js +89 -49
  12. package/dist/js/modern/analyze/getServerRoutes.js +122 -126
  13. package/dist/js/modern/analyze/index.js +193 -159
  14. package/dist/js/modern/analyze/isDefaultExportFunction.js +30 -16
  15. package/dist/js/modern/analyze/makeLegalIdentifier.js +10 -11
  16. package/dist/js/modern/analyze/nestedRoutes.js +110 -53
  17. package/dist/js/modern/analyze/templates.js +190 -77
  18. package/dist/js/modern/analyze/utils.js +98 -51
  19. package/dist/js/modern/builder/builderPlugins/compatModern.js +124 -107
  20. package/dist/js/modern/builder/index.js +123 -86
  21. package/dist/js/modern/builder/loaders/routerLoader.js +17 -0
  22. package/dist/js/modern/builder/loaders/serverModuleLoader.js +7 -0
  23. package/dist/js/modern/builder/share.js +22 -20
  24. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +23 -22
  25. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +31 -27
  26. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +98 -84
  27. package/dist/js/modern/commands/build.js +67 -42
  28. package/dist/js/modern/commands/deploy.js +27 -4
  29. package/dist/js/modern/commands/dev.js +93 -47
  30. package/dist/js/modern/commands/index.js +1 -1
  31. package/dist/js/modern/commands/inspect.js +30 -5
  32. package/dist/js/modern/commands/start.js +37 -16
  33. package/dist/js/modern/config/default.js +103 -114
  34. package/dist/js/modern/config/index.js +8 -2
  35. package/dist/js/modern/config/initial/createHtmlConfig.js +5 -2
  36. package/dist/js/modern/config/initial/createOutputConfig.js +11 -9
  37. package/dist/js/modern/config/initial/createSourceConfig.js +5 -2
  38. package/dist/js/modern/config/initial/createToolsConfig.js +7 -6
  39. package/dist/js/modern/config/initial/index.js +9 -4
  40. package/dist/js/modern/config/initial/inits.js +109 -73
  41. package/dist/js/modern/config/initial/transformNormalizedConfig.js +6 -3
  42. package/dist/js/modern/defineConfig.js +26 -11
  43. package/dist/js/modern/exports/server.js +4 -1
  44. package/dist/js/modern/hooks.js +10 -3
  45. package/dist/js/modern/index.js +140 -89
  46. package/dist/js/modern/initialize/index.js +98 -51
  47. package/dist/js/modern/locale/en.js +20 -21
  48. package/dist/js/modern/locale/index.js +6 -6
  49. package/dist/js/modern/locale/zh.js +21 -22
  50. package/dist/js/modern/schema/Schema.js +6 -5
  51. package/dist/js/modern/schema/index.js +51 -100
  52. package/dist/js/modern/schema/legacy.js +96 -231
  53. package/dist/js/modern/types/config/index.js +0 -1
  54. package/dist/js/modern/types/index.js +0 -1
  55. package/dist/js/modern/types/legacyConfig/output.js +0 -1
  56. package/dist/js/modern/utils/commands.js +5 -2
  57. package/dist/js/modern/utils/config.js +102 -41
  58. package/dist/js/modern/utils/createFileWatcher.js +84 -51
  59. package/dist/js/modern/utils/createServer.js +63 -17
  60. package/dist/js/modern/utils/getSpecifiedEntries.js +46 -19
  61. package/dist/js/modern/utils/language.js +6 -3
  62. package/dist/js/modern/utils/printInstructions.js +27 -8
  63. package/dist/js/modern/utils/restart.js +43 -16
  64. package/dist/js/modern/utils/routes.js +29 -12
  65. package/dist/js/node/analyze/constants.js +54 -35
  66. package/dist/js/node/analyze/generateCode.js +290 -228
  67. package/dist/js/node/analyze/getBundleEntry.js +55 -44
  68. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +132 -76
  69. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +128 -74
  70. package/dist/js/node/analyze/getClientRoutes/index.js +23 -17
  71. package/dist/js/node/analyze/getClientRoutes/utils.js +44 -21
  72. package/dist/js/node/analyze/getFileSystemEntry.js +70 -39
  73. package/dist/js/node/analyze/getHtmlTemplate.js +116 -61
  74. package/dist/js/node/analyze/getServerRoutes.js +143 -137
  75. package/dist/js/node/analyze/index.js +240 -174
  76. package/dist/js/node/analyze/isDefaultExportFunction.js +55 -26
  77. package/dist/js/node/analyze/makeLegalIdentifier.js +27 -15
  78. package/dist/js/node/analyze/nestedRoutes.js +140 -67
  79. package/dist/js/node/analyze/templates.js +211 -84
  80. package/dist/js/node/analyze/utils.js +123 -62
  81. package/dist/js/node/builder/builderPlugins/compatModern.js +152 -120
  82. package/dist/js/node/builder/index.js +151 -95
  83. package/dist/js/node/builder/loaders/routerLoader.js +36 -0
  84. package/dist/js/node/builder/loaders/serverModuleLoader.js +26 -0
  85. package/dist/js/node/builder/share.js +45 -25
  86. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +39 -26
  87. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +47 -31
  88. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +116 -90
  89. package/dist/js/node/commands/build.js +89 -52
  90. package/dist/js/node/commands/deploy.js +45 -10
  91. package/dist/js/node/commands/dev.js +115 -61
  92. package/dist/js/node/commands/index.js +19 -38
  93. package/dist/js/node/commands/inspect.js +48 -11
  94. package/dist/js/node/commands/start.js +65 -27
  95. package/dist/js/node/config/default.js +119 -118
  96. package/dist/js/node/config/index.js +25 -29
  97. package/dist/js/node/config/initial/createHtmlConfig.js +22 -6
  98. package/dist/js/node/config/initial/createOutputConfig.js +28 -13
  99. package/dist/js/node/config/initial/createSourceConfig.js +22 -6
  100. package/dist/js/node/config/initial/createToolsConfig.js +24 -10
  101. package/dist/js/node/config/initial/index.js +28 -17
  102. package/dist/js/node/config/initial/inits.js +126 -81
  103. package/dist/js/node/config/initial/transformNormalizedConfig.js +31 -15
  104. package/dist/js/node/defineConfig.js +43 -17
  105. package/dist/js/node/exports/server.js +21 -10
  106. package/dist/js/node/hooks.js +44 -29
  107. package/dist/js/node/index.js +190 -130
  108. package/dist/js/node/initialize/index.js +116 -61
  109. package/dist/js/node/locale/en.js +36 -25
  110. package/dist/js/node/locale/index.js +27 -15
  111. package/dist/js/node/locale/zh.js +37 -26
  112. package/dist/js/node/schema/Schema.js +23 -10
  113. package/dist/js/node/schema/index.js +77 -114
  114. package/dist/js/node/schema/legacy.js +117 -240
  115. package/dist/js/node/types/config/index.js +17 -16
  116. package/dist/js/node/types/index.js +19 -38
  117. package/dist/js/node/types/legacyConfig/output.js +0 -5
  118. package/dist/js/node/utils/commands.js +21 -6
  119. package/dist/js/node/utils/config.js +120 -51
  120. package/dist/js/node/utils/createFileWatcher.js +104 -60
  121. package/dist/js/node/utils/createServer.js +86 -25
  122. package/dist/js/node/utils/getSpecifiedEntries.js +64 -25
  123. package/dist/js/node/utils/language.js +24 -8
  124. package/dist/js/node/utils/printInstructions.js +47 -16
  125. package/dist/js/node/utils/restart.js +61 -21
  126. package/dist/js/node/utils/routes.js +53 -18
  127. package/dist/js/treeshaking/analyze/constants.js +28 -16
  128. package/dist/js/treeshaking/analyze/generateCode.js +604 -355
  129. package/dist/js/treeshaking/analyze/getBundleEntry.js +52 -63
  130. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +214 -168
  131. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  132. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  133. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  134. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +89 -86
  135. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  136. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -146
  137. package/dist/js/treeshaking/analyze/index.js +558 -303
  138. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  139. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  140. package/dist/js/treeshaking/analyze/nestedRoutes.js +414 -160
  141. package/dist/js/treeshaking/analyze/templates.js +432 -161
  142. package/dist/js/treeshaking/analyze/utils.js +361 -80
  143. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +281 -195
  144. package/dist/js/treeshaking/builder/index.js +371 -165
  145. package/dist/js/treeshaking/builder/loaders/routerLoader.js +13 -0
  146. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +5 -0
  147. package/dist/js/treeshaking/builder/share.js +41 -44
  148. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  149. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  150. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +332 -112
  151. package/dist/js/treeshaking/commands/build.js +286 -88
  152. package/dist/js/treeshaking/commands/deploy.js +153 -25
  153. package/dist/js/treeshaking/commands/dev.js +318 -132
  154. package/dist/js/treeshaking/commands/index.js +1 -1
  155. package/dist/js/treeshaking/commands/inspect.js +147 -32
  156. package/dist/js/treeshaking/commands/start.js +190 -68
  157. package/dist/js/treeshaking/config/default.js +210 -199
  158. package/dist/js/treeshaking/config/index.js +3 -2
  159. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  160. package/dist/js/treeshaking/config/initial/createOutputConfig.js +43 -67
  161. package/dist/js/treeshaking/config/initial/createSourceConfig.js +37 -40
  162. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  163. package/dist/js/treeshaking/config/initial/index.js +10 -9
  164. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  165. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +27 -34
  166. package/dist/js/treeshaking/defineConfig.js +60 -13
  167. package/dist/js/treeshaking/exports/server.js +2 -1
  168. package/dist/js/treeshaking/hooks.js +26 -25
  169. package/dist/js/treeshaking/index.js +465 -257
  170. package/dist/js/treeshaking/initialize/index.js +290 -112
  171. package/dist/js/treeshaking/locale/en.js +34 -33
  172. package/dist/js/treeshaking/locale/index.js +5 -5
  173. package/dist/js/treeshaking/locale/zh.js +34 -33
  174. package/dist/js/treeshaking/schema/Schema.js +267 -69
  175. package/dist/js/treeshaking/schema/index.js +165 -121
  176. package/dist/js/treeshaking/schema/legacy.js +323 -256
  177. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  178. package/dist/js/treeshaking/types/config/dev.js +1 -0
  179. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  180. package/dist/js/treeshaking/types/config/html.js +1 -0
  181. package/dist/js/treeshaking/types/config/index.js +0 -1
  182. package/dist/js/treeshaking/types/config/output.js +1 -0
  183. package/dist/js/treeshaking/types/config/performance.js +1 -0
  184. package/dist/js/treeshaking/types/config/security.js +1 -0
  185. package/dist/js/treeshaking/types/config/source.js +1 -0
  186. package/dist/js/treeshaking/types/config/tools.js +1 -0
  187. package/dist/js/treeshaking/types/hooks.js +1 -0
  188. package/dist/js/treeshaking/types/index.js +0 -1
  189. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  190. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  191. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  192. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  193. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  194. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  195. package/dist/js/treeshaking/utils/commands.js +6 -5
  196. package/dist/js/treeshaking/utils/config.js +295 -117
  197. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  198. package/dist/js/treeshaking/utils/createServer.js +252 -67
  199. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  200. package/dist/js/treeshaking/utils/language.js +6 -5
  201. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  202. package/dist/js/treeshaking/utils/restart.js +184 -42
  203. package/dist/js/treeshaking/utils/routes.js +151 -27
  204. package/dist/js/treeshaking/utils/types.js +1 -0
  205. package/dist/types/analyze/constants.d.ts +2 -0
  206. package/dist/types/analyze/index.d.ts +2 -0
  207. package/dist/types/analyze/templates.d.ts +8 -7
  208. package/dist/types/analyze/utils.d.ts +9 -1
  209. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  210. package/dist/types/builder/index.d.ts +2 -2
  211. package/dist/types/builder/loaders/routerLoader.d.ts +3 -0
  212. package/dist/types/builder/loaders/serverModuleLoader.d.ts +3 -0
  213. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +1 -7
  214. package/dist/types/defineConfig.d.ts +1 -0
  215. package/dist/types/index.d.ts +2 -0
  216. package/dist/types/initialize/index.d.ts +2 -0
  217. package/dist/types/types/config/index.d.ts +1 -0
  218. package/dist/types/types/config/output.d.ts +0 -1
  219. package/dist/types/types/config/source.d.ts +1 -0
  220. package/dist/types/types/config/tools.d.ts +10 -1
  221. package/dist/types/types/hooks.d.ts +2 -1
  222. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  223. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  224. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  225. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  226. package/dist/types/utils/config.d.ts +1 -0
  227. package/dist/types/utils/createFileWatcher.d.ts +2 -1
  228. package/dist/types/utils/createServer.d.ts +1 -0
  229. package/dist/types/utils/restart.d.ts +1 -1
  230. package/lib/types.d.ts +1 -1
  231. package/package.json +27 -23
@@ -1,86 +1,122 @@
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 createBuilderForEdenX(_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) {
83
+ function createBuilderProviderConfig(normalizedConfig, appContext) {
84
+ var _a;
36
85
  const output = createOutputConfig(normalizedConfig, appContext);
37
- return _objectSpread(_objectSpread({}, normalizedConfig), {}, {
38
- source: _objectSpread(_objectSpread({}, normalizedConfig.source), {}, {
39
- resolveExtensionPrefix: '.web'
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), {
91
+ source: __spreadProps(__spreadValues({}, normalizedConfig.source), {
92
+ resolveExtensionPrefix: ".web"
40
93
  }),
41
94
  output,
42
95
  dev: {
96
+ port: (_a = normalizedConfig.server) == null ? void 0 : _a.port,
43
97
  https: normalizedConfig.dev.https,
44
98
  assetPrefix: normalizedConfig.dev.assetPrefix
45
99
  },
46
- html: _objectSpread(_objectSpread({}, normalizedConfig.html), {}, {
47
- templateByEntries: normalizedConfig.html.templateByEntries || appContext.htmlTemplates
48
- }),
49
- performance: _objectSpread(_objectSpread({}, normalizedConfig.performance), {}, {
50
- // `@modern-js/webpack` used to remove moment locale by default
100
+ html: htmlConfig,
101
+ performance: __spreadProps(__spreadValues({}, normalizedConfig.performance), {
51
102
  removeMomentLocale: true
52
103
  })
53
104
  });
54
- function createOutputConfig(config, appContext) {
55
- const defaultCopyPattern = createCopyPattern(appContext, config, 'upload');
56
- const {
57
- copy
58
- } = config.output;
59
- const copyOptions = Array.isArray(copy) ? copy : copy === null || copy === void 0 ? void 0 : copy.patterns;
60
- const builderCopy = [...(copyOptions || []), defaultCopyPattern];
61
- return _objectSpread(_objectSpread({}, config.output), {}, {
105
+ function createOutputConfig(config, appContext2) {
106
+ const defaultCopyPattern = createCopyPattern(appContext2, config, "upload");
107
+ const { copy } = config.output;
108
+ const copyOptions = Array.isArray(copy) ? copy : copy == null ? void 0 : copy.patterns;
109
+ const builderCopy = [...copyOptions || [], defaultCopyPattern];
110
+ return __spreadProps(__spreadValues({}, config.output), {
62
111
  copy: builderCopy,
63
- // 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
64
- cleanDistPath: false,
65
- // `@modern-js/webpack` used to generate asset manifest by default
66
- enableAssetManifest: true,
67
- // compatible the modern-js with fallback behavior
68
- enableAssetFallback: true
112
+ cleanDistPath: false
69
113
  });
70
114
  }
71
115
  }
72
- export function createBuilderOptions(target, appContext) {
73
- // create entries
74
-
116
+ function createBuilderOptions(target, appContext) {
75
117
  const entries = {};
76
- const {
77
- entrypoints = [],
78
- checkedEntries
79
- } = appContext;
80
- for (const {
81
- entryName,
82
- entry
83
- } of entrypoints) {
118
+ const { entrypoints = [], checkedEntries } = appContext;
119
+ for (const { entryName, entry } of entrypoints) {
84
120
  if (checkedEntries && !checkedEntries.includes(entryName)) {
85
121
  continue;
86
122
  }
@@ -93,33 +129,34 @@ export function createBuilderOptions(target, appContext) {
93
129
  return {
94
130
  cwd: appContext.appDirectory,
95
131
  target,
96
- configPath: appContext.configFile || undefined,
132
+ configPath: appContext.configFile || void 0,
97
133
  entry: entries,
98
134
  framework: appContext.metaName
99
135
  };
100
136
  }
101
-
102
- /**
103
- * register builder Plugin by condition
104
- */
105
- async function applyBuilderPlugins(builder, normalizedConfig, appContext, compatPluginConfig) {
106
- if (!normalizedConfig.output.disableNodePolyfill) {
107
- const {
108
- PluginNodePolyfill
109
- } = await import('@modern-js/builder-plugin-node-polyfill');
110
- builder.addPlugins([PluginNodePolyfill()]);
111
- }
112
- if (normalizedConfig.tools.esbuild) {
113
- const {
114
- esbuild: esbuildOptions
115
- } = normalizedConfig.tools;
116
- const {
117
- PluginEsbuild
118
- } = await import('@modern-js/builder-plugin-esbuild');
119
- builder.addPlugins([PluginEsbuild({
120
- loader: false,
121
- minimize: applyOptionsChain({}, esbuildOptions)
122
- })]);
123
- }
124
- builder.addPlugins([PluginCompatModern(appContext, normalizedConfig, compatPluginConfig)]);
125
- }
137
+ function applyBuilderPlugins(builder, normalizedConfig, appContext, compatPluginConfig) {
138
+ return __async(this, null, function* () {
139
+ if (!normalizedConfig.output.disableNodePolyfill) {
140
+ const { PluginNodePolyfill } = yield import("@modern-js/builder-plugin-node-polyfill");
141
+ builder.addPlugins([PluginNodePolyfill()]);
142
+ }
143
+ if (normalizedConfig.tools.esbuild) {
144
+ const { esbuild: esbuildOptions } = normalizedConfig.tools;
145
+ const { PluginEsbuild } = yield import("@modern-js/builder-plugin-esbuild");
146
+ builder.addPlugins([
147
+ PluginEsbuild({
148
+ loader: false,
149
+ minimize: applyOptionsChain({}, esbuildOptions)
150
+ })
151
+ ]);
152
+ }
153
+ builder.addPlugins([
154
+ PluginCompatModern(appContext, normalizedConfig, compatPluginConfig)
155
+ ]);
156
+ });
157
+ }
158
+ export {
159
+ createBuilderForEdenX,
160
+ createBuilderOptions,
161
+ createBuilderProviderConfig
162
+ };
@@ -0,0 +1,17 @@
1
+ import { slash } from "@modern-js/utils";
2
+ function loader(source) {
3
+ this.cacheable();
4
+ const { target } = this._compiler.options;
5
+ if (target === "node" || Array.isArray(target) && target.includes("node")) {
6
+ return source;
7
+ }
8
+ const { resourcePath } = this;
9
+ const code = `
10
+ export { default } from "${slash(resourcePath)}";
11
+ `;
12
+ return code;
13
+ }
14
+ var routerLoader_default = loader;
15
+ export {
16
+ routerLoader_default as default
17
+ };
@@ -0,0 +1,7 @@
1
+ function loader() {
2
+ return `module.exports = {}`;
3
+ }
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 { template as lodashTemplate } from "@modern-js/utils/lodash";
3
+ import { removeTailSlash } from "@modern-js/utils";
4
+ function createCopyPattern(appContext, config, patternsType, chain) {
5
+ const configDir = path.resolve(
6
+ appContext.appDirectory,
7
+ config.source.configDir || "./config"
8
+ );
9
+ const uploadDir = path.posix.join(configDir.replace(/\\/g, "/"), "upload");
10
+ const publicDir = path.posix.join(configDir.replace(/\\/g, "/"), "public");
8
11
  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
12
+ const info = (file) => ({
13
13
  minimized: minifiedJsRexExp.test(file.sourceFilename)
14
14
  });
15
- if (patternsType === 'public') {
15
+ if (patternsType === "public") {
16
16
  if (!chain) {
17
17
  throw new Error("expect get a webpackChain, but receive 'undefined'");
18
18
  }
19
19
  return {
20
20
  info,
21
- from: '**/*',
22
- to: 'public',
21
+ from: "**/*",
22
+ to: "public",
23
23
  context: publicDir,
24
24
  noErrorOnMissing: true,
25
- // eslint-disable-next-line node/prefer-global/buffer
26
25
  transform: (content, absoluteFrom) => {
27
26
  if (!/\.html?$/.test(absoluteFrom)) {
28
27
  return content;
29
28
  }
30
- return lodashTemplate(content.toString('utf8'))({
31
- assetPrefix: removeTailSlash(chain.output.get('publicPath'))
29
+ return lodashTemplate(content.toString("utf8"))({
30
+ assetPrefix: removeTailSlash(chain.output.get("publicPath"))
32
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
+ };
@@ -1,97 +1,111 @@
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
- import path from 'path';
3
- import { fs, ROUTE_MANIFEST, logger, ROUTE_MINIFEST_FILE } from '@modern-js/utils';
4
- const PLUGIN_NAME = 'ModernjsRoutePlugin';
5
- export default class RouterPlugin {
6
- constructor(options) {
7
- _defineProperty(this, "existNestedRoutes", void 0);
8
- this.existNestedRoutes = options.existNestedRoutes;
9
- }
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import path from "path";
22
+ import {
23
+ fs,
24
+ ROUTE_MANIFEST,
25
+ logger,
26
+ ROUTE_MINIFEST_FILE
27
+ } from "@modern-js/utils";
28
+ const PLUGIN_NAME = "ModernjsRoutePlugin";
29
+ class RouterPlugin {
10
30
  apply(compiler) {
11
- const {
12
- existNestedRoutes
13
- } = this;
14
- const {
15
- target
16
- } = compiler.options;
17
- if (target === 'node' || Array.isArray(target) && target.includes('node')) {
18
- return;
19
- }
20
- if (!existNestedRoutes) {
31
+ const { target } = compiler.options;
32
+ if (target === "node" || Array.isArray(target) && target.includes("node")) {
21
33
  return;
22
34
  }
23
- const {
24
- webpack
25
- } = compiler;
26
- const {
27
- Compilation,
28
- sources
29
- } = webpack;
30
- const {
31
- RawSource
32
- } = sources;
33
- const {
34
- PROCESS_ASSETS_STAGE_REPORT
35
- } = Compilation;
35
+ const { webpack } = compiler;
36
+ const { Compilation, sources } = webpack;
37
+ const { RawSource } = sources;
38
+ const { PROCESS_ASSETS_STAGE_REPORT } = Compilation;
36
39
  const outputPath = compiler.options.output.path;
37
- const newAssetsMap = new Map();
38
- const normalizePath = path => {
39
- if (!path.endsWith('/')) {
40
- return `${path}/`;
40
+ const newAssetsMap = /* @__PURE__ */ new Map();
41
+ const normalizePath = (path2) => {
42
+ if (!path2.endsWith("/")) {
43
+ return `${path2}/`;
41
44
  }
42
- return path;
45
+ return path2;
43
46
  };
44
- compiler.hooks.thisCompilation.tap(PLUGIN_NAME, compilation => {
45
- compilation.hooks.processAssets.tapPromise({
46
- name: PLUGIN_NAME,
47
- stage: PROCESS_ASSETS_STAGE_REPORT
48
- }, async () => {
49
- const stats = compilation.getStats().toJson({
50
- chunkGroups: true,
51
- chunks: true
52
- });
53
- const {
54
- publicPath
55
- } = stats;
56
- const routeAssets = {};
57
- const {
58
- namedChunkGroups,
59
- assetsByChunkName
60
- } = stats;
61
- if (!namedChunkGroups || !assetsByChunkName) {
62
- logger.warn('Route manifest does not exist, performance will be affected');
63
- return;
64
- }
65
- for (const [name, chunkGroup] of Object.entries(namedChunkGroups)) {
66
- routeAssets[name] = {
67
- chunkIds: chunkGroup.chunks,
68
- assets: assetsByChunkName[name].map(item => publicPath ? normalizePath(publicPath) + item : item)
47
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => {
48
+ compilation.hooks.processAssets.tapPromise(
49
+ {
50
+ name: PLUGIN_NAME,
51
+ stage: PROCESS_ASSETS_STAGE_REPORT
52
+ },
53
+ () => __async(this, null, function* () {
54
+ const stats = compilation.getStats().toJson({
55
+ chunkGroups: true,
56
+ chunks: true
57
+ });
58
+ const { publicPath } = stats;
59
+ const routeAssets = {};
60
+ const { namedChunkGroups, assetsByChunkName } = stats;
61
+ if (!namedChunkGroups || !assetsByChunkName) {
62
+ logger.warn(
63
+ "Route manifest does not exist, performance will be affected"
64
+ );
65
+ return;
66
+ }
67
+ for (const [name, chunkGroup] of Object.entries(namedChunkGroups)) {
68
+ if (assetsByChunkName[name]) {
69
+ routeAssets[name] = {
70
+ chunkIds: chunkGroup.chunks,
71
+ assets: assetsByChunkName[name].map(
72
+ (item) => publicPath ? normalizePath(publicPath) + item : item
73
+ )
74
+ };
75
+ }
76
+ }
77
+ const manifest = {
78
+ routeAssets
69
79
  };
70
- }
71
- const manifest = {
72
- routeAssets
73
- };
74
- const injectedContent = `
80
+ const injectedContent = `
75
81
  ;(function(){
76
82
  window.${ROUTE_MANIFEST} = ${JSON.stringify(manifest)};
77
83
  })();
78
84
  `;
79
- const entrypointsArray = Array.from(compilation.entrypoints.entries());
80
- const entryChunkIds = entrypointsArray.map(entrypoint => entrypoint[0]);
81
- const entryChunks = [...compilation.chunks].filter(chunk => {
82
- return entryChunkIds.includes(chunk.name);
83
- });
84
- const entryChunkFiles = entryChunks.map(chunk => [...chunk.files][0]);
85
- for (const file of entryChunkFiles) {
86
- const asset = compilation.assets[file];
87
- const newContent = `${injectedContent}${asset.source().toString()}`;
88
- newAssetsMap.set(path.join(outputPath, file), newContent);
89
- compilation.updateAsset(file, new RawSource(newContent));
90
- }
91
- const filename = path.join(outputPath, ROUTE_MINIFEST_FILE);
92
- await fs.ensureFile(filename);
93
- await fs.writeFile(filename, JSON.stringify(manifest, null, 2));
94
- });
85
+ const entrypointsArray = Array.from(
86
+ compilation.entrypoints.entries()
87
+ );
88
+ const entryChunkIds = entrypointsArray.map(
89
+ (entrypoint) => entrypoint[0]
90
+ );
91
+ const entryChunks = [...compilation.chunks].filter((chunk) => {
92
+ return entryChunkIds.includes(chunk.name);
93
+ });
94
+ const entryChunkFiles = entryChunks.map((chunk) => [...chunk.files][0]);
95
+ for (const file of entryChunkFiles) {
96
+ const asset = compilation.assets[file];
97
+ const newContent = `${injectedContent}${asset.source().toString()}`;
98
+ newAssetsMap.set(path.join(outputPath, file), newContent);
99
+ compilation.updateAsset(file, new RawSource(newContent));
100
+ }
101
+ const filename = path.join(outputPath, ROUTE_MINIFEST_FILE);
102
+ yield fs.ensureFile(filename);
103
+ yield fs.writeFile(filename, JSON.stringify(manifest, null, 2));
104
+ })
105
+ );
95
106
  });
96
107
  }
97
- }
108
+ }
109
+ export {
110
+ RouterPlugin as default
111
+ };