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

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 (230) hide show
  1. package/CHANGELOG.md +305 -0
  2. package/bin/modern.js +1 -0
  3. package/dist/js/modern/analyze/Builder.js +39 -0
  4. package/dist/js/modern/analyze/constants.js +38 -18
  5. package/dist/js/modern/analyze/generateCode.js +262 -221
  6. package/dist/js/modern/analyze/getBundleEntry.js +34 -32
  7. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +93 -49
  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 +43 -22
  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 +201 -160
  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 +106 -60
  18. package/dist/js/modern/analyze/templates.js +163 -81
  19. package/dist/js/modern/analyze/utils.js +87 -66
  20. package/dist/js/modern/builder/builderPlugins/compatModern.js +122 -109
  21. package/dist/js/modern/builder/index.js +123 -86
  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 +77 -27
  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/start.js +37 -15
  34. package/dist/js/modern/config/default.js +103 -113
  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 +9 -10
  38. package/dist/js/modern/config/initial/createSourceConfig.js +5 -2
  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 +6 -3
  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 +15 -4
  46. package/dist/js/modern/index.js +178 -90
  47. package/dist/js/modern/initialize/index.js +98 -51
  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 +51 -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 +5 -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/getSpecifiedEntries.js +46 -19
  62. package/dist/js/modern/utils/language.js +6 -3
  63. package/dist/js/modern/utils/printInstructions.js +27 -8
  64. package/dist/js/modern/utils/restart.js +43 -16
  65. package/dist/js/modern/utils/routes.js +29 -12
  66. package/dist/js/node/analyze/Builder.js +58 -0
  67. package/dist/js/node/analyze/constants.js +54 -39
  68. package/dist/js/node/analyze/generateCode.js +282 -239
  69. package/dist/js/node/analyze/getBundleEntry.js +58 -44
  70. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +132 -76
  71. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +128 -74
  72. package/dist/js/node/analyze/getClientRoutes/index.js +23 -17
  73. package/dist/js/node/analyze/getClientRoutes/utils.js +44 -21
  74. package/dist/js/node/analyze/getFileSystemEntry.js +70 -39
  75. package/dist/js/node/analyze/getHtmlTemplate.js +116 -61
  76. package/dist/js/node/analyze/getServerRoutes.js +143 -137
  77. package/dist/js/node/analyze/index.js +247 -174
  78. package/dist/js/node/analyze/isDefaultExportFunction.js +55 -26
  79. package/dist/js/node/analyze/makeLegalIdentifier.js +27 -15
  80. package/dist/js/node/analyze/nestedRoutes.js +137 -75
  81. package/dist/js/node/analyze/templates.js +185 -90
  82. package/dist/js/node/analyze/utils.js +114 -81
  83. package/dist/js/node/builder/builderPlugins/compatModern.js +150 -122
  84. package/dist/js/node/builder/index.js +151 -95
  85. package/dist/js/node/builder/loaders/routerLoader.js +27 -18
  86. package/dist/js/node/builder/loaders/serverModuleLoader.js +22 -7
  87. package/dist/js/node/builder/share.js +46 -26
  88. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +39 -26
  89. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +47 -31
  90. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +118 -90
  91. package/dist/js/node/commands/build.js +89 -52
  92. package/dist/js/node/commands/deploy.js +45 -10
  93. package/dist/js/node/commands/dev.js +99 -41
  94. package/dist/js/node/commands/index.js +19 -38
  95. package/dist/js/node/commands/inspect.js +48 -11
  96. package/dist/js/node/commands/start.js +65 -26
  97. package/dist/js/node/config/default.js +119 -117
  98. package/dist/js/node/config/index.js +25 -29
  99. package/dist/js/node/config/initial/createHtmlConfig.js +22 -6
  100. package/dist/js/node/config/initial/createOutputConfig.js +26 -14
  101. package/dist/js/node/config/initial/createSourceConfig.js +22 -6
  102. package/dist/js/node/config/initial/createToolsConfig.js +24 -10
  103. package/dist/js/node/config/initial/index.js +28 -17
  104. package/dist/js/node/config/initial/inits.js +126 -81
  105. package/dist/js/node/config/initial/transformNormalizedConfig.js +31 -15
  106. package/dist/js/node/defineConfig.js +43 -17
  107. package/dist/js/node/exports/server.js +21 -10
  108. package/dist/js/node/hooks.js +48 -29
  109. package/dist/js/node/index.js +225 -128
  110. package/dist/js/node/initialize/index.js +116 -61
  111. package/dist/js/node/locale/en.js +36 -25
  112. package/dist/js/node/locale/index.js +27 -15
  113. package/dist/js/node/locale/zh.js +37 -26
  114. package/dist/js/node/schema/Schema.js +23 -10
  115. package/dist/js/node/schema/index.js +77 -114
  116. package/dist/js/node/schema/legacy.js +117 -240
  117. package/dist/js/node/types/config/index.js +17 -16
  118. package/dist/js/node/types/index.js +19 -38
  119. package/dist/js/node/types/legacyConfig/output.js +0 -5
  120. package/dist/js/node/utils/commands.js +21 -6
  121. package/dist/js/node/utils/config.js +120 -51
  122. package/dist/js/node/utils/createFileWatcher.js +104 -61
  123. package/dist/js/node/utils/createServer.js +86 -25
  124. package/dist/js/node/utils/getSpecifiedEntries.js +64 -25
  125. package/dist/js/node/utils/language.js +24 -8
  126. package/dist/js/node/utils/printInstructions.js +47 -16
  127. package/dist/js/node/utils/restart.js +61 -21
  128. package/dist/js/node/utils/routes.js +53 -18
  129. package/dist/js/treeshaking/analyze/Builder.js +199 -0
  130. package/dist/js/treeshaking/analyze/constants.js +28 -18
  131. package/dist/js/treeshaking/analyze/generateCode.js +600 -406
  132. package/dist/js/treeshaking/analyze/getBundleEntry.js +55 -63
  133. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +214 -168
  134. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +215 -169
  135. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -2
  136. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +19 -20
  137. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +89 -86
  138. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +298 -125
  139. package/dist/js/treeshaking/analyze/getServerRoutes.js +210 -147
  140. package/dist/js/treeshaking/analyze/index.js +571 -304
  141. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +45 -26
  142. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -16
  143. package/dist/js/treeshaking/analyze/nestedRoutes.js +411 -200
  144. package/dist/js/treeshaking/analyze/templates.js +433 -236
  145. package/dist/js/treeshaking/analyze/utils.js +358 -153
  146. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +282 -200
  147. package/dist/js/treeshaking/builder/index.js +371 -165
  148. package/dist/js/treeshaking/builder/loaders/routerLoader.js +11 -12
  149. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +3 -2
  150. package/dist/js/treeshaking/builder/share.js +38 -44
  151. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +108 -44
  152. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +70 -39
  153. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +334 -112
  154. package/dist/js/treeshaking/commands/build.js +286 -88
  155. package/dist/js/treeshaking/commands/deploy.js +153 -25
  156. package/dist/js/treeshaking/commands/dev.js +318 -131
  157. package/dist/js/treeshaking/commands/index.js +1 -1
  158. package/dist/js/treeshaking/commands/inspect.js +147 -32
  159. package/dist/js/treeshaking/commands/start.js +190 -67
  160. package/dist/js/treeshaking/config/default.js +210 -198
  161. package/dist/js/treeshaking/config/index.js +3 -2
  162. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -31
  163. package/dist/js/treeshaking/config/initial/createOutputConfig.js +43 -70
  164. package/dist/js/treeshaking/config/initial/createSourceConfig.js +37 -40
  165. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -38
  166. package/dist/js/treeshaking/config/initial/index.js +10 -9
  167. package/dist/js/treeshaking/config/initial/inits.js +205 -106
  168. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +27 -34
  169. package/dist/js/treeshaking/defineConfig.js +60 -13
  170. package/dist/js/treeshaking/exports/server.js +2 -1
  171. package/dist/js/treeshaking/hooks.js +30 -25
  172. package/dist/js/treeshaking/index.js +681 -256
  173. package/dist/js/treeshaking/initialize/index.js +290 -112
  174. package/dist/js/treeshaking/locale/en.js +34 -33
  175. package/dist/js/treeshaking/locale/index.js +5 -5
  176. package/dist/js/treeshaking/locale/zh.js +34 -33
  177. package/dist/js/treeshaking/schema/Schema.js +267 -69
  178. package/dist/js/treeshaking/schema/index.js +165 -121
  179. package/dist/js/treeshaking/schema/legacy.js +323 -256
  180. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  181. package/dist/js/treeshaking/types/config/dev.js +1 -0
  182. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  183. package/dist/js/treeshaking/types/config/html.js +1 -0
  184. package/dist/js/treeshaking/types/config/index.js +0 -1
  185. package/dist/js/treeshaking/types/config/output.js +1 -0
  186. package/dist/js/treeshaking/types/config/performance.js +1 -0
  187. package/dist/js/treeshaking/types/config/security.js +1 -0
  188. package/dist/js/treeshaking/types/config/source.js +1 -0
  189. package/dist/js/treeshaking/types/config/tools.js +1 -0
  190. package/dist/js/treeshaking/types/hooks.js +1 -0
  191. package/dist/js/treeshaking/types/index.js +0 -1
  192. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  193. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  194. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  195. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -1
  196. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  197. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  198. package/dist/js/treeshaking/utils/commands.js +6 -5
  199. package/dist/js/treeshaking/utils/config.js +295 -117
  200. package/dist/js/treeshaking/utils/createFileWatcher.js +278 -118
  201. package/dist/js/treeshaking/utils/createServer.js +252 -67
  202. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +182 -55
  203. package/dist/js/treeshaking/utils/language.js +6 -5
  204. package/dist/js/treeshaking/utils/printInstructions.js +151 -29
  205. package/dist/js/treeshaking/utils/restart.js +184 -42
  206. package/dist/js/treeshaking/utils/routes.js +151 -27
  207. package/dist/js/treeshaking/utils/types.js +1 -0
  208. package/dist/types/analyze/Builder.d.ts +8 -0
  209. package/dist/types/analyze/index.d.ts +2 -0
  210. package/dist/types/analyze/templates.d.ts +3 -1
  211. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -1
  212. package/dist/types/builder/index.d.ts +3 -3
  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 +6 -1
  216. package/dist/types/initialize/index.d.ts +2 -0
  217. package/dist/types/types/config/dev.d.ts +2 -2
  218. package/dist/types/types/config/index.d.ts +1 -0
  219. package/dist/types/types/config/output.d.ts +0 -1
  220. package/dist/types/types/config/source.d.ts +1 -0
  221. package/dist/types/types/config/tools.d.ts +2 -0
  222. package/dist/types/types/hooks.d.ts +5 -0
  223. package/dist/types/types/legacyConfig/dev.d.ts +1 -0
  224. package/dist/types/types/legacyConfig/output.d.ts +1 -1
  225. package/dist/types/types/legacyConfig/source.d.ts +1 -0
  226. package/dist/types/types/legacyConfig/tools.d.ts +1 -0
  227. package/dist/types/utils/config.d.ts +1 -0
  228. package/dist/types/utils/createServer.d.ts +1 -0
  229. package/dist/types/utils/restart.d.ts +1 -1
  230. package/package.json +23 -22
@@ -1,84 +1,120 @@
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'
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"
41
93
  }),
42
94
  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
95
+ dev: __spreadProps(__spreadValues({}, normalizedConfig.dev), {
96
+ port: (_a = normalizedConfig.server) == null ? void 0 : _a.port
50
97
  }),
51
- performance: _objectSpread(_objectSpread({}, normalizedConfig.performance), {}, {
52
- // `@modern-js/webpack` used to remove moment locale by default
98
+ html: htmlConfig,
99
+ performance: __spreadProps(__spreadValues({}, normalizedConfig.performance), {
53
100
  removeMomentLocale: true
54
101
  })
55
102
  });
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), {}, {
103
+ function createOutputConfig(config, appContext2) {
104
+ const defaultCopyPattern = createCopyPattern(appContext2, config, "upload");
105
+ const { copy } = config.output;
106
+ const copyOptions = Array.isArray(copy) ? copy : copy == null ? void 0 : copy.patterns;
107
+ const builderCopy = [...copyOptions || [], defaultCopyPattern];
108
+ return __spreadProps(__spreadValues({}, config.output), {
64
109
  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
110
  cleanDistPath: false
67
111
  });
68
112
  }
69
113
  }
70
- export function createBuilderOptions(target, appContext) {
71
- // create entries
72
-
114
+ function createBuilderOptions(target, appContext) {
73
115
  const entries = {};
74
- const {
75
- entrypoints = [],
76
- checkedEntries
77
- } = appContext;
78
- for (const {
79
- entryName,
80
- entry
81
- } of entrypoints) {
116
+ const { entrypoints = [], checkedEntries } = appContext;
117
+ for (const { entryName, entry } of entrypoints) {
82
118
  if (checkedEntries && !checkedEntries.includes(entryName)) {
83
119
  continue;
84
120
  }
@@ -91,33 +127,34 @@ export function createBuilderOptions(target, appContext) {
91
127
  return {
92
128
  cwd: appContext.appDirectory,
93
129
  target,
94
- configPath: appContext.configFile || undefined,
130
+ configPath: appContext.configFile || void 0,
95
131
  entry: entries,
96
132
  framework: appContext.metaName
97
133
  };
98
134
  }
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
- }
135
+ function applyBuilderPlugins(builder, normalizedConfig, appContext, compatPluginConfig) {
136
+ return __async(this, null, function* () {
137
+ if (!normalizedConfig.output.disableNodePolyfill) {
138
+ const { PluginNodePolyfill } = yield import("@modern-js/builder-plugin-node-polyfill");
139
+ builder.addPlugins([PluginNodePolyfill()]);
140
+ }
141
+ if (normalizedConfig.tools.esbuild) {
142
+ const { esbuild: esbuildOptions } = normalizedConfig.tools;
143
+ const { PluginEsbuild } = yield import("@modern-js/builder-plugin-esbuild");
144
+ builder.addPlugins([
145
+ PluginEsbuild({
146
+ loader: false,
147
+ minimize: applyOptionsChain({}, esbuildOptions)
148
+ })
149
+ ]);
150
+ }
151
+ builder.addPlugins([
152
+ PluginCompatModern(appContext, normalizedConfig, compatPluginConfig)
153
+ ]);
154
+ });
155
+ }
156
+ export {
157
+ createBuilderForModern,
158
+ createBuilderOptions,
159
+ createBuilderProviderConfig
160
+ };
@@ -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
+ };