@modern-js/app-tools 2.7.1-alpha.0 → 2.8.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 (260) hide show
  1. package/CHANGELOG.md +53 -2
  2. package/dist/cjs/analyze/generateCode.js +14 -3
  3. package/dist/cjs/analyze/index.js +0 -45
  4. package/dist/cjs/analyze/templates.js +30 -8
  5. package/dist/cjs/analyze/utils.js +5 -0
  6. package/dist/cjs/builder/index.js +1 -1
  7. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +25 -1
  8. package/dist/esm/analyze/generateCode.js +31 -18
  9. package/dist/esm/analyze/index.js +2 -34
  10. package/dist/esm/analyze/templates.js +21 -8
  11. package/dist/esm/analyze/utils.js +4 -1
  12. package/dist/esm/builder/index.js +1 -1
  13. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +241 -22
  14. package/dist/esm-node/analyze/generateCode.js +19 -4
  15. package/dist/esm-node/analyze/index.js +2 -54
  16. package/dist/esm-node/analyze/templates.js +29 -8
  17. package/dist/esm-node/analyze/utils.js +4 -0
  18. package/dist/esm-node/builder/index.js +1 -1
  19. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +25 -1
  20. package/dist/types/analyze/templates.d.ts +4 -5
  21. package/dist/types/analyze/utils.d.ts +2 -1
  22. package/dist/types/types/config/output.d.ts +0 -1
  23. package/package.json +26 -26
  24. package/dist/js/modern/analyze/constants.js +0 -54
  25. package/dist/js/modern/analyze/generateCode.js +0 -247
  26. package/dist/js/modern/analyze/getBundleEntry.js +0 -71
  27. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +0 -220
  28. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +0 -216
  29. package/dist/js/modern/analyze/getClientRoutes/index.js +0 -6
  30. package/dist/js/modern/analyze/getClientRoutes/utils.js +0 -31
  31. package/dist/js/modern/analyze/getFileSystemEntry.js +0 -109
  32. package/dist/js/modern/analyze/getHtmlTemplate.js +0 -115
  33. package/dist/js/modern/analyze/getServerRoutes.js +0 -175
  34. package/dist/js/modern/analyze/index.js +0 -332
  35. package/dist/js/modern/analyze/isDefaultExportFunction.js +0 -42
  36. package/dist/js/modern/analyze/makeLegalIdentifier.js +0 -13
  37. package/dist/js/modern/analyze/nestedRoutes.js +0 -157
  38. package/dist/js/modern/analyze/templates.js +0 -334
  39. package/dist/js/modern/analyze/utils.js +0 -141
  40. package/dist/js/modern/builder/builderPlugins/compatModern.js +0 -233
  41. package/dist/js/modern/builder/index.js +0 -159
  42. package/dist/js/modern/builder/loaders/routerLoader.js +0 -17
  43. package/dist/js/modern/builder/loaders/serverModuleLoader.js +0 -7
  44. package/dist/js/modern/builder/share.js +0 -46
  45. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -30
  46. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +0 -37
  47. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +0 -113
  48. package/dist/js/modern/commands/build.js +0 -91
  49. package/dist/js/modern/commands/deploy.js +0 -28
  50. package/dist/js/modern/commands/dev.js +0 -109
  51. package/dist/js/modern/commands/index.js +0 -3
  52. package/dist/js/modern/commands/inspect.js +0 -38
  53. package/dist/js/modern/commands/serve.js +0 -54
  54. package/dist/js/modern/config/default.js +0 -175
  55. package/dist/js/modern/config/index.js +0 -8
  56. package/dist/js/modern/config/initial/createHtmlConfig.js +0 -35
  57. package/dist/js/modern/config/initial/createOutputConfig.js +0 -68
  58. package/dist/js/modern/config/initial/createSourceConfig.js +0 -39
  59. package/dist/js/modern/config/initial/createToolsConfig.js +0 -42
  60. package/dist/js/modern/config/initial/index.js +0 -16
  61. package/dist/js/modern/config/initial/inits.js +0 -152
  62. package/dist/js/modern/config/initial/transformNormalizedConfig.js +0 -47
  63. package/dist/js/modern/defineConfig.js +0 -27
  64. package/dist/js/modern/exports/server.js +0 -4
  65. package/dist/js/modern/hooks.js +0 -35
  66. package/dist/js/modern/index.js +0 -211
  67. package/dist/js/modern/initialize/index.js +0 -124
  68. package/dist/js/modern/locale/en.js +0 -36
  69. package/dist/js/modern/locale/index.js +0 -9
  70. package/dist/js/modern/locale/zh.js +0 -36
  71. package/dist/js/modern/schema/Schema.js +0 -40
  72. package/dist/js/modern/schema/index.js +0 -88
  73. package/dist/js/modern/schema/legacy.js +0 -148
  74. package/dist/js/modern/types/config/deploy.js +0 -0
  75. package/dist/js/modern/types/config/dev.js +0 -0
  76. package/dist/js/modern/types/config/experiments.js +0 -0
  77. package/dist/js/modern/types/config/html.js +0 -0
  78. package/dist/js/modern/types/config/index.js +0 -1
  79. package/dist/js/modern/types/config/output.js +0 -0
  80. package/dist/js/modern/types/config/performance.js +0 -0
  81. package/dist/js/modern/types/config/security.js +0 -0
  82. package/dist/js/modern/types/config/source.js +0 -0
  83. package/dist/js/modern/types/config/tools.js +0 -0
  84. package/dist/js/modern/types/hooks.js +0 -0
  85. package/dist/js/modern/types/index.js +0 -3
  86. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  87. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  88. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  89. package/dist/js/modern/types/legacyConfig/output.js +0 -0
  90. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  91. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  92. package/dist/js/modern/utils/config.js +0 -128
  93. package/dist/js/modern/utils/createServer.js +0 -75
  94. package/dist/js/modern/utils/env.js +0 -15
  95. package/dist/js/modern/utils/generateWatchFiles.js +0 -55
  96. package/dist/js/modern/utils/getSelectedEntries.js +0 -58
  97. package/dist/js/modern/utils/getServerInternalPlugins.js +0 -58
  98. package/dist/js/modern/utils/language.js +0 -8
  99. package/dist/js/modern/utils/printInstructions.js +0 -31
  100. package/dist/js/modern/utils/restart.js +0 -44
  101. package/dist/js/modern/utils/routes.js +0 -30
  102. package/dist/js/modern/utils/types.js +0 -0
  103. package/dist/js/node/analyze/constants.js +0 -98
  104. package/dist/js/node/analyze/generateCode.js +0 -271
  105. package/dist/js/node/analyze/getBundleEntry.js +0 -95
  106. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +0 -242
  107. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +0 -238
  108. package/dist/js/node/analyze/getClientRoutes/index.js +0 -30
  109. package/dist/js/node/analyze/getClientRoutes/utils.js +0 -58
  110. package/dist/js/node/analyze/getFileSystemEntry.js +0 -131
  111. package/dist/js/node/analyze/getHtmlTemplate.js +0 -144
  112. package/dist/js/node/analyze/getServerRoutes.js +0 -194
  113. package/dist/js/node/analyze/index.js +0 -339
  114. package/dist/js/node/analyze/isDefaultExportFunction.js +0 -71
  115. package/dist/js/node/analyze/makeLegalIdentifier.js +0 -36
  116. package/dist/js/node/analyze/nestedRoutes.js +0 -184
  117. package/dist/js/node/analyze/templates.js +0 -365
  118. package/dist/js/node/analyze/utils.js +0 -172
  119. package/dist/js/node/builder/builderPlugins/compatModern.js +0 -258
  120. package/dist/js/node/builder/index.js +0 -177
  121. package/dist/js/node/builder/loaders/routerLoader.js +0 -38
  122. package/dist/js/node/builder/loaders/serverModuleLoader.js +0 -28
  123. package/dist/js/node/builder/share.js +0 -75
  124. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -53
  125. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +0 -60
  126. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +0 -135
  127. package/dist/js/node/commands/build.js +0 -112
  128. package/dist/js/node/commands/deploy.js +0 -51
  129. package/dist/js/node/commands/dev.js +0 -126
  130. package/dist/js/node/commands/index.js +0 -19
  131. package/dist/js/node/commands/inspect.js +0 -61
  132. package/dist/js/node/commands/serve.js +0 -83
  133. package/dist/js/node/config/default.js +0 -197
  134. package/dist/js/node/config/index.js +0 -34
  135. package/dist/js/node/config/initial/createHtmlConfig.js +0 -58
  136. package/dist/js/node/config/initial/createOutputConfig.js +0 -91
  137. package/dist/js/node/config/initial/createSourceConfig.js +0 -62
  138. package/dist/js/node/config/initial/createToolsConfig.js +0 -65
  139. package/dist/js/node/config/initial/index.js +0 -41
  140. package/dist/js/node/config/initial/inits.js +0 -175
  141. package/dist/js/node/config/initial/transformNormalizedConfig.js +0 -70
  142. package/dist/js/node/defineConfig.js +0 -49
  143. package/dist/js/node/exports/server.js +0 -27
  144. package/dist/js/node/hooks.js +0 -54
  145. package/dist/js/node/index.js +0 -235
  146. package/dist/js/node/initialize/index.js +0 -134
  147. package/dist/js/node/locale/en.js +0 -59
  148. package/dist/js/node/locale/index.js +0 -33
  149. package/dist/js/node/locale/zh.js +0 -59
  150. package/dist/js/node/schema/Schema.js +0 -63
  151. package/dist/js/node/schema/index.js +0 -118
  152. package/dist/js/node/schema/legacy.js +0 -169
  153. package/dist/js/node/types/config/deploy.js +0 -15
  154. package/dist/js/node/types/config/dev.js +0 -15
  155. package/dist/js/node/types/config/experiments.js +0 -15
  156. package/dist/js/node/types/config/html.js +0 -15
  157. package/dist/js/node/types/config/index.js +0 -17
  158. package/dist/js/node/types/config/output.js +0 -15
  159. package/dist/js/node/types/config/performance.js +0 -15
  160. package/dist/js/node/types/config/security.js +0 -15
  161. package/dist/js/node/types/config/source.js +0 -15
  162. package/dist/js/node/types/config/tools.js +0 -15
  163. package/dist/js/node/types/hooks.js +0 -15
  164. package/dist/js/node/types/index.js +0 -19
  165. package/dist/js/node/types/legacyConfig/deploy.js +0 -15
  166. package/dist/js/node/types/legacyConfig/dev.js +0 -15
  167. package/dist/js/node/types/legacyConfig/index.js +0 -15
  168. package/dist/js/node/types/legacyConfig/output.js +0 -15
  169. package/dist/js/node/types/legacyConfig/source.js +0 -15
  170. package/dist/js/node/types/legacyConfig/tools.js +0 -15
  171. package/dist/js/node/utils/config.js +0 -153
  172. package/dist/js/node/utils/createServer.js +0 -106
  173. package/dist/js/node/utils/env.js +0 -38
  174. package/dist/js/node/utils/generateWatchFiles.js +0 -85
  175. package/dist/js/node/utils/getSelectedEntries.js +0 -81
  176. package/dist/js/node/utils/getServerInternalPlugins.js +0 -79
  177. package/dist/js/node/utils/language.js +0 -31
  178. package/dist/js/node/utils/printInstructions.js +0 -54
  179. package/dist/js/node/utils/restart.js +0 -67
  180. package/dist/js/node/utils/routes.js +0 -59
  181. package/dist/js/node/utils/types.js +0 -15
  182. package/dist/js/treeshaking/analyze/constants.js +0 -40
  183. package/dist/js/treeshaking/analyze/generateCode.js +0 -485
  184. package/dist/js/treeshaking/analyze/getBundleEntry.js +0 -62
  185. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +0 -233
  186. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +0 -231
  187. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +0 -3
  188. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +0 -23
  189. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +0 -107
  190. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +0 -302
  191. package/dist/js/treeshaking/analyze/getServerRoutes.js +0 -222
  192. package/dist/js/treeshaking/analyze/index.js +0 -697
  193. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +0 -47
  194. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +0 -13
  195. package/dist/js/treeshaking/analyze/nestedRoutes.js +0 -384
  196. package/dist/js/treeshaking/analyze/templates.js +0 -468
  197. package/dist/js/treeshaking/analyze/utils.js +0 -374
  198. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +0 -304
  199. package/dist/js/treeshaking/builder/index.js +0 -374
  200. package/dist/js/treeshaking/builder/loaders/routerLoader.js +0 -13
  201. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +0 -5
  202. package/dist/js/treeshaking/builder/share.js +0 -40
  203. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -110
  204. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +0 -72
  205. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +0 -343
  206. package/dist/js/treeshaking/commands/build.js +0 -291
  207. package/dist/js/treeshaking/commands/deploy.js +0 -154
  208. package/dist/js/treeshaking/commands/dev.js +0 -301
  209. package/dist/js/treeshaking/commands/index.js +0 -3
  210. package/dist/js/treeshaking/commands/inspect.js +0 -149
  211. package/dist/js/treeshaking/commands/serve.js +0 -199
  212. package/dist/js/treeshaking/config/default.js +0 -210
  213. package/dist/js/treeshaking/config/index.js +0 -3
  214. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +0 -19
  215. package/dist/js/treeshaking/config/initial/createOutputConfig.js +0 -41
  216. package/dist/js/treeshaking/config/initial/createSourceConfig.js +0 -42
  217. package/dist/js/treeshaking/config/initial/createToolsConfig.js +0 -23
  218. package/dist/js/treeshaking/config/initial/index.js +0 -12
  219. package/dist/js/treeshaking/config/initial/inits.js +0 -209
  220. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +0 -35
  221. package/dist/js/treeshaking/defineConfig.js +0 -61
  222. package/dist/js/treeshaking/exports/server.js +0 -2
  223. package/dist/js/treeshaking/hooks.js +0 -29
  224. package/dist/js/treeshaking/index.js +0 -706
  225. package/dist/js/treeshaking/initialize/index.js +0 -276
  226. package/dist/js/treeshaking/locale/en.js +0 -38
  227. package/dist/js/treeshaking/locale/index.js +0 -9
  228. package/dist/js/treeshaking/locale/zh.js +0 -38
  229. package/dist/js/treeshaking/schema/Schema.js +0 -273
  230. package/dist/js/treeshaking/schema/index.js +0 -181
  231. package/dist/js/treeshaking/schema/legacy.js +0 -337
  232. package/dist/js/treeshaking/types/config/deploy.js +0 -1
  233. package/dist/js/treeshaking/types/config/dev.js +0 -1
  234. package/dist/js/treeshaking/types/config/experiments.js +0 -1
  235. package/dist/js/treeshaking/types/config/html.js +0 -1
  236. package/dist/js/treeshaking/types/config/index.js +0 -1
  237. package/dist/js/treeshaking/types/config/output.js +0 -1
  238. package/dist/js/treeshaking/types/config/performance.js +0 -1
  239. package/dist/js/treeshaking/types/config/security.js +0 -1
  240. package/dist/js/treeshaking/types/config/source.js +0 -1
  241. package/dist/js/treeshaking/types/config/tools.js +0 -1
  242. package/dist/js/treeshaking/types/hooks.js +0 -1
  243. package/dist/js/treeshaking/types/index.js +0 -3
  244. package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -1
  245. package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -1
  246. package/dist/js/treeshaking/types/legacyConfig/index.js +0 -1
  247. package/dist/js/treeshaking/types/legacyConfig/output.js +0 -1
  248. package/dist/js/treeshaking/types/legacyConfig/source.js +0 -1
  249. package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -1
  250. package/dist/js/treeshaking/utils/config.js +0 -302
  251. package/dist/js/treeshaking/utils/createServer.js +0 -258
  252. package/dist/js/treeshaking/utils/env.js +0 -13
  253. package/dist/js/treeshaking/utils/generateWatchFiles.js +0 -214
  254. package/dist/js/treeshaking/utils/getSelectedEntries.js +0 -186
  255. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +0 -210
  256. package/dist/js/treeshaking/utils/language.js +0 -6
  257. package/dist/js/treeshaking/utils/printInstructions.js +0 -152
  258. package/dist/js/treeshaking/utils/restart.js +0 -187
  259. package/dist/js/treeshaking/utils/routes.js +0 -153
  260. package/dist/js/treeshaking/utils/types.js +0 -1
@@ -1,5 +1,131 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _asyncToGenerator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ var __generator = this && this.__generator || function(thisArg, body) {
31
+ var f, y, t, g, _ = {
32
+ label: 0,
33
+ sent: function() {
34
+ if (t[0] & 1) throw t[1];
35
+ return t[1];
36
+ },
37
+ trys: [],
38
+ ops: []
39
+ };
40
+ return(g = {
41
+ next: verb(0),
42
+ "throw": verb(1),
43
+ "return": verb(2)
44
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
45
+ return this;
46
+ }), g);
47
+ function verb(n) {
48
+ return function(v) {
49
+ return step([
50
+ n,
51
+ v
52
+ ]);
53
+ };
54
+ }
55
+ function step(op) {
56
+ if (f) throw new TypeError("Generator is already executing.");
57
+ while(_)try {
58
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
59
+ if (y = 0, t) op = [
60
+ op[0] & 2,
61
+ t.value
62
+ ];
63
+ switch(op[0]){
64
+ case 0:
65
+ case 1:
66
+ t = op;
67
+ break;
68
+ case 4:
69
+ _.label++;
70
+ return {
71
+ value: op[1],
72
+ done: false
73
+ };
74
+ case 5:
75
+ _.label++;
76
+ y = op[1];
77
+ op = [
78
+ 0
79
+ ];
80
+ continue;
81
+ case 7:
82
+ op = _.ops.pop();
83
+ _.trys.pop();
84
+ continue;
85
+ default:
86
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
87
+ _ = 0;
88
+ continue;
89
+ }
90
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
91
+ _.label = op[1];
92
+ break;
93
+ }
94
+ if (op[0] === 6 && _.label < t[1]) {
95
+ _.label = t[1];
96
+ t = op;
97
+ break;
98
+ }
99
+ if (t && _.label < t[2]) {
100
+ _.label = t[2];
101
+ _.ops.push(op);
102
+ break;
103
+ }
104
+ if (t[2]) _.ops.pop();
105
+ _.trys.pop();
106
+ continue;
107
+ }
108
+ op = body.call(thisArg, _);
109
+ } catch (e) {
110
+ op = [
111
+ 6,
112
+ e
113
+ ];
114
+ y = 0;
115
+ } finally{
116
+ f = t = 0;
117
+ }
118
+ if (op[0] & 5) throw op[1];
119
+ return {
120
+ value: op[0] ? op[1] : void 0,
121
+ done: true
122
+ };
123
+ }
124
+ };
1
125
  import { mergeBuilderConfig } from "@modern-js/builder-shared";
126
+ import { fs } from "@modern-js/utils";
2
127
  import { HtmlAsyncChunkPlugin, RouterPlugin } from "../bundlerPlugins";
128
+ import { getServerCombinedModueFile } from "../../../analyze/utils";
3
129
  import { isHtmlEnabled } from "./adapterHtml";
4
130
  var builderPluginAdapterSSR = function(options) {
5
131
  return {
@@ -16,29 +142,49 @@ var builderPluginAdapterSSR = function(options) {
16
142
  }
17
143
  return config;
18
144
  });
19
- api.modifyBundlerChain(function(chain, param) {
20
- var target = param.target, CHAIN_ID = param.CHAIN_ID, isProd = param.isProd, HtmlBundlerPlugin = param.HtmlPlugin;
21
- var builderConfig = api.getNormalizedConfig();
22
- applyRouterPlugin(chain, options);
23
- if ([
24
- "node",
25
- "service-worker"
26
- ].includes(target)) {
27
- applyFilterEntriesBySSRConfig({
28
- isProd: isProd,
29
- chain: chain,
30
- appNormalizedConfig: options.normalizedConfig
31
- });
32
- }
33
- if (isHtmlEnabled(builderConfig, target)) {
34
- applyAsyncChunkHtmlPlugin({
35
- chain: chain,
36
- modernConfig: options.normalizedConfig,
37
- CHAIN_ID: CHAIN_ID,
38
- HtmlBundlerPlugin: HtmlBundlerPlugin
145
+ api.modifyBundlerChain(function() {
146
+ var _ref = _asyncToGenerator(function(chain, param) {
147
+ var target, CHAIN_ID, isProd, HtmlBundlerPlugin, isServer, builderConfig;
148
+ return __generator(this, function(_state) {
149
+ switch(_state.label){
150
+ case 0:
151
+ target = param.target, CHAIN_ID = param.CHAIN_ID, isProd = param.isProd, HtmlBundlerPlugin = param.HtmlPlugin, isServer = param.isServer;
152
+ builderConfig = api.getNormalizedConfig();
153
+ applyRouterPlugin(chain, options);
154
+ return [
155
+ 4,
156
+ applySSRLoaderEntry(chain, options, isServer)
157
+ ];
158
+ case 1:
159
+ _state.sent();
160
+ if ([
161
+ "node",
162
+ "service-worker"
163
+ ].includes(target)) {
164
+ applyFilterEntriesBySSRConfig({
165
+ isProd: isProd,
166
+ chain: chain,
167
+ appNormalizedConfig: options.normalizedConfig
168
+ });
169
+ }
170
+ if (isHtmlEnabled(builderConfig, target)) {
171
+ applyAsyncChunkHtmlPlugin({
172
+ chain: chain,
173
+ modernConfig: options.normalizedConfig,
174
+ CHAIN_ID: CHAIN_ID,
175
+ HtmlBundlerPlugin: HtmlBundlerPlugin
176
+ });
177
+ }
178
+ return [
179
+ 2
180
+ ];
181
+ }
39
182
  });
40
- }
41
- });
183
+ });
184
+ return function(chain, _) {
185
+ return _ref.apply(this, arguments);
186
+ };
187
+ }());
42
188
  }
43
189
  };
44
190
  };
@@ -128,4 +274,77 @@ function applyFilterEntriesBySSRConfig(param) {
128
274
  }
129
275
  });
130
276
  }
277
+ function applySSRLoaderEntry(chain, optinos, isServer) {
278
+ return _applySSRLoaderEntry.apply(this, arguments);
279
+ }
280
+ function _applySSRLoaderEntry() {
281
+ _applySSRLoaderEntry = _asyncToGenerator(function(chain, optinos, isServer) {
282
+ var appContext, internalDirectory, entrypoints;
283
+ return __generator(this, function(_state) {
284
+ switch(_state.label){
285
+ case 0:
286
+ appContext = optinos.appContext;
287
+ internalDirectory = appContext.internalDirectory;
288
+ entrypoints = appContext.entrypoints;
289
+ return [
290
+ 4,
291
+ Promise.all(entrypoints.map(function() {
292
+ var _ref = _asyncToGenerator(function(entrypoint) {
293
+ var entryName, serverLoadersFile, err;
294
+ return __generator(this, function(_state) {
295
+ switch(_state.label){
296
+ case 0:
297
+ entryName = entrypoint.entryName;
298
+ serverLoadersFile = getServerCombinedModueFile(internalDirectory, entryName);
299
+ if (!isServer) return [
300
+ 3,
301
+ 4
302
+ ];
303
+ _state.label = 1;
304
+ case 1:
305
+ _state.trys.push([
306
+ 1,
307
+ 3,
308
+ ,
309
+ 4
310
+ ]);
311
+ return [
312
+ 4,
313
+ fs.access(serverLoadersFile, fs.constants.F_OK)
314
+ ];
315
+ case 2:
316
+ _state.sent();
317
+ chain.entry("".concat(entryName, "-server-loaders")).add(serverLoadersFile);
318
+ return [
319
+ 3,
320
+ 4
321
+ ];
322
+ case 3:
323
+ err = _state.sent();
324
+ return [
325
+ 3,
326
+ 4
327
+ ];
328
+ case 4:
329
+ return [
330
+ 2
331
+ ];
332
+ }
333
+ });
334
+ });
335
+ return function(entrypoint) {
336
+ return _ref.apply(this, arguments);
337
+ };
338
+ }()))
339
+ ];
340
+ case 1:
341
+ _state.sent();
342
+ return [
343
+ 2
344
+ ];
345
+ }
346
+ });
347
+ });
348
+ return _applySSRLoaderEntry.apply(this, arguments);
349
+ }
131
350
  export { builderPluginAdapterSSR };
@@ -14,7 +14,11 @@ import {
14
14
  ENTRY_POINT_FILE_NAME,
15
15
  ENTRY_BOOTSTRAP_FILE_NAME
16
16
  } from "./constants";
17
- import { getDefaultImports, getServerLoadersFile } from "./utils";
17
+ import {
18
+ getDefaultImports,
19
+ getServerLoadersFile,
20
+ getServerCombinedModueFile
21
+ } from "./utils";
18
22
  import { walk } from "./nestedRoutes";
19
23
  const createImportSpecifier = (specifiers) => {
20
24
  let defaults = "";
@@ -77,7 +81,6 @@ const generateCode = async (appContext, config, entrypoints, api) => {
77
81
  const getRoutes = isV5 ? getClientRoutesLegacy : getClientRoutes;
78
82
  await Promise.all(entrypoints.map(generateEntryCode));
79
83
  async function generateEntryCode(entrypoint) {
80
- var _a;
81
84
  const { entryName, isAutoMount, customBootstrap, fileSystemRoutes } = entrypoint;
82
85
  if (isAutoMount) {
83
86
  if (fileSystemRoutes) {
@@ -140,8 +143,7 @@ const generateCode = async (appContext, config, entrypoints, api) => {
140
143
  ssrMode: useSSG ? "string" : mode,
141
144
  nestedRoutesEntry: entrypoint.nestedRoutesEntry,
142
145
  entryName: entrypoint.entryName,
143
- internalDirectory,
144
- splitRoutesChunks: (_a = config2 == null ? void 0 : config2.output) == null ? void 0 : _a.splitRoutesChunks
146
+ internalDirectory
145
147
  })
146
148
  });
147
149
  if (entrypoint.nestedRoutesEntry && isUseSSRBundle(config2)) {
@@ -155,6 +157,19 @@ const generateCode = async (appContext, config, entrypoints, api) => {
155
157
  await fs.ensureFile(routesServerFile);
156
158
  await fs.writeFile(routesServerFile, code3);
157
159
  }
160
+ const serverLoaderCombined = templates.ssrLoaderCombinedModule(
161
+ entrypoints,
162
+ entrypoint,
163
+ config2,
164
+ appContext
165
+ );
166
+ if (serverLoaderCombined) {
167
+ const serverLoaderFile = getServerCombinedModueFile(
168
+ internalDirectory,
169
+ entryName
170
+ );
171
+ await fs.outputFile(serverLoaderFile, serverLoaderCombined);
172
+ }
158
173
  fs.outputFileSync(
159
174
  path.resolve(
160
175
  internalDirectory,
@@ -3,27 +3,19 @@ import {
3
3
  createDebugger,
4
4
  findExists,
5
5
  fs,
6
- getEntryOptions,
7
6
  isApiOnly,
8
7
  minimist,
9
8
  getCommand,
10
- isDevCommand,
11
- isSSGEntry
9
+ isDevCommand
12
10
  } from "@modern-js/utils";
13
11
  import { cloneDeep } from "@modern-js/utils/lodash";
14
- import { createVirtualModule } from "@modern-js/builder-shared";
15
12
  import { printInstructions } from "../utils/printInstructions";
16
13
  import { generateRoutes } from "../utils/routes";
17
14
  import { emitResolvedConfig } from "../utils/config";
18
15
  import { getSelectedEntries } from "../utils/getSelectedEntries";
19
16
  import { initialNormalizedConfig } from "../config";
20
17
  import { createBuilderGenerator } from "../builder";
21
- import {
22
- getServerLoadersFile,
23
- isPageComponentFile,
24
- parseModule,
25
- replaceWithAlias
26
- } from "./utils";
18
+ import { isPageComponentFile, parseModule, replaceWithAlias } from "./utils";
27
19
  import {
28
20
  APP_CONFIG_NAME,
29
21
  APP_INIT_EXPORTED,
@@ -177,42 +169,6 @@ var analyze_default = ({
177
169
  watchFiles() {
178
170
  return pagesDir;
179
171
  },
180
- config() {
181
- return {
182
- tools: {
183
- webpackChain: (chain, { name }) => {
184
- const appContext = api.useAppContext();
185
- const resolvedConfig = api.useResolvedConfigContext();
186
- const { entrypoints, internalDirectory, packageName } = appContext;
187
- entrypoints.forEach((entrypoint) => {
188
- const { entryName } = entrypoint;
189
- const ssr = getEntryOptions(
190
- entryName,
191
- resolvedConfig.server.ssr,
192
- resolvedConfig.server.ssrByEntries,
193
- packageName
194
- );
195
- const useSSG = isSSGEntry(
196
- resolvedConfig,
197
- entryName,
198
- entrypoints
199
- );
200
- if (entrypoint.nestedRoutesEntry && (ssr || useSSG) && name === "server") {
201
- const serverLoaderRuntime = require.resolve("@modern-js/plugin-data-loader/runtime");
202
- const serverLoadersFile = getServerLoadersFile(
203
- internalDirectory,
204
- entryName
205
- );
206
- const combinedModule = createVirtualModule(
207
- `export * from "${serverLoaderRuntime}"; export * from "${serverLoadersFile}"`
208
- );
209
- chain.entry(`${entryName}-server-loaders`).add(combinedModule);
210
- }
211
- });
212
- }
213
- }
214
- };
215
- },
216
172
  resolvedConfig({ resolved }) {
217
173
  const appContext = api.useAppContext();
218
174
  const config = initialNormalizedConfig(resolved, appContext, bundler);
@@ -271,14 +227,6 @@ var analyze_default = ({
271
227
  imports
272
228
  };
273
229
  },
274
- validateSchema() {
275
- return {
276
- target: "output.splitRoutesChunks",
277
- schema: {
278
- type: "boolean"
279
- }
280
- };
281
- },
282
230
  async fileChange(e) {
283
231
  const appContext = api.useAppContext();
284
232
  const { appDirectory } = appContext;
@@ -1,6 +1,7 @@
1
1
  import path from "path";
2
- import { fs, slash } from "@modern-js/utils";
2
+ import { fs, getEntryOptions, isSSGEntry, slash } from "@modern-js/utils";
3
3
  import { APP_CONFIG_NAME, TEMP_LOADERS_DIR } from "./constants";
4
+ import { getServerLoadersFile } from "./utils";
4
5
  const index = ({
5
6
  mountId,
6
7
  imports,
@@ -144,14 +145,12 @@ const fileSystemRoutes = async ({
144
145
  ssrMode,
145
146
  nestedRoutesEntry,
146
147
  entryName,
147
- internalDirectory,
148
- splitRoutesChunks = true
148
+ internalDirectory
149
149
  }) => {
150
150
  const loadings = [];
151
151
  const errors = [];
152
152
  const loaders = [];
153
153
  const loadersMap = {};
154
- const webpackMode = splitRoutesChunks ? "lazy" : "eager";
155
154
  const loadersMapFile = path.join(
156
155
  internalDirectory,
157
156
  entryName,
@@ -210,15 +209,15 @@ const fileSystemRoutes = async ({
210
209
  rootLayoutCode = `import RootLayout from '${route._component}'`;
211
210
  component = `RootLayout`;
212
211
  } else if (ssrMode === "string") {
213
- lazyImport = `() => import(/* webpackChunkName: "${route.id}" */ /* webpackMode: "${webpackMode}" */ '${route._component}')`;
212
+ lazyImport = `() => import(/* webpackChunkName: "${route.id}" */ '${route._component}')`;
214
213
  component = `loadable(${lazyImport})`;
215
214
  } else {
216
- lazyImport = `() => import(/* webpackChunkName: "${route.id}" */ /* webpackMode: "${webpackMode}" */ '${route._component}')`;
215
+ lazyImport = `() => import(/* webpackChunkName: "${route.id}" */ '${route._component}')`;
217
216
  component = `lazy(${lazyImport})`;
218
217
  }
219
218
  }
220
219
  } else if (route._component) {
221
- lazyImport = `() => import( /* webpackMode: "${webpackMode}" */ '${route._component}')`;
220
+ lazyImport = `() => import('${route._component}')`;
222
221
  component = `loadable(${lazyImport})`;
223
222
  }
224
223
  const finalRoute = {
@@ -285,10 +284,32 @@ const fileSystemRoutes = async ({
285
284
  ${routeComponentsCode}
286
285
  `;
287
286
  };
287
+ function ssrLoaderCombinedModule(entrypoints, entrypoint, config, appContext) {
288
+ const { entryName } = entrypoint;
289
+ const { packageName, internalDirectory } = appContext;
290
+ const ssr = getEntryOptions(
291
+ entryName,
292
+ config.server.ssr,
293
+ config.server.ssrByEntries,
294
+ packageName
295
+ );
296
+ const ssg = isSSGEntry(config, entryName, entrypoints);
297
+ if (entrypoint.nestedRoutesEntry && (ssr || ssg)) {
298
+ const serverLoaderRuntime = require.resolve("@modern-js/plugin-data-loader/runtime");
299
+ const serverLoadersFile = getServerLoadersFile(
300
+ internalDirectory,
301
+ entryName
302
+ );
303
+ const combinedModule = `export * from "${serverLoaderRuntime}"; export * from "${serverLoadersFile}"`;
304
+ return combinedModule;
305
+ }
306
+ return null;
307
+ }
288
308
  export {
289
309
  fileSystemRoutes,
290
310
  html,
291
311
  index,
292
312
  renderFunction,
293
- routesForServer
313
+ routesForServer,
314
+ ssrLoaderCombinedModule
294
315
  };
@@ -110,8 +110,12 @@ const hasLoader = async (filename) => {
110
110
  const getServerLoadersFile = (internalDirectory, entryName) => {
111
111
  return path.join(internalDirectory, entryName, "route-server-loaders.js");
112
112
  };
113
+ const getServerCombinedModueFile = (internalDirectory, entryName) => {
114
+ return path.join(internalDirectory, entryName, "server-loader-combined.js");
115
+ };
113
116
  export {
114
117
  getDefaultImports,
118
+ getServerCombinedModueFile,
115
119
  getServerLoadersFile,
116
120
  hasLoader,
117
121
  isPageComponentFile,
@@ -5,7 +5,7 @@ async function createBuilderGenerator(bundler) {
5
5
  return createRspackBuilderForModern;
6
6
  } catch (_) {
7
7
  throw new Error(
8
- "Failed to use rspack, please check if you have `@modern-js/builder-rspack-provider` installed"
8
+ "Failed to use Rspack, please check if you have `@modern-js/builder-rspack-provider` installed"
9
9
  );
10
10
  }
11
11
  }
@@ -1,7 +1,9 @@
1
1
  import {
2
2
  mergeBuilderConfig
3
3
  } from "@modern-js/builder-shared";
4
+ import { fs } from "@modern-js/utils";
4
5
  import { HtmlAsyncChunkPlugin, RouterPlugin } from "../bundlerPlugins";
6
+ import { getServerCombinedModueFile } from "../../../analyze/utils";
5
7
  import { isHtmlEnabled } from "./adapterHtml";
6
8
  const builderPluginAdapterSSR = (options) => ({
7
9
  name: "builder-plugin-adapter-modern-ssr",
@@ -18,9 +20,10 @@ const builderPluginAdapterSSR = (options) => ({
18
20
  return config;
19
21
  });
20
22
  api.modifyBundlerChain(
21
- (chain, { target, CHAIN_ID, isProd, HtmlPlugin: HtmlBundlerPlugin }) => {
23
+ async (chain, { target, CHAIN_ID, isProd, HtmlPlugin: HtmlBundlerPlugin, isServer }) => {
22
24
  const builderConfig = api.getNormalizedConfig();
23
25
  applyRouterPlugin(chain, options);
26
+ await applySSRLoaderEntry(chain, options, isServer);
24
27
  if (["node", "service-worker"].includes(target)) {
25
28
  applyFilterEntriesBySSRConfig({
26
29
  isProd,
@@ -114,6 +117,27 @@ function applyFilterEntriesBySSRConfig({
114
117
  }
115
118
  });
116
119
  }
120
+ async function applySSRLoaderEntry(chain, optinos, isServer) {
121
+ const { appContext } = optinos;
122
+ const { internalDirectory } = appContext;
123
+ const { entrypoints } = appContext;
124
+ await Promise.all(
125
+ entrypoints.map(async (entrypoint) => {
126
+ const { entryName } = entrypoint;
127
+ const serverLoadersFile = getServerCombinedModueFile(
128
+ internalDirectory,
129
+ entryName
130
+ );
131
+ if (isServer) {
132
+ try {
133
+ await fs.access(serverLoadersFile, fs.constants.F_OK);
134
+ chain.entry(`${entryName}-server-loaders`).add(serverLoadersFile);
135
+ } catch (err) {
136
+ }
137
+ }
138
+ })
139
+ );
140
+ }
117
141
  export {
118
142
  builderPluginAdapterSSR
119
143
  };
@@ -1,5 +1,5 @@
1
1
  import type { Entrypoint, NestedRoute, PageRoute, RouteLegacy, SSRMode } from '@modern-js/types';
2
- import type { RuntimePlugin } from '../types';
2
+ import type { AppNormalizedConfig, IAppContext, RuntimePlugin } from '../types';
3
3
  export declare const index: ({
4
4
  mountId,
5
5
  imports,
@@ -35,13 +35,12 @@ export declare const fileSystemRoutes: ({
35
35
  ssrMode,
36
36
  nestedRoutesEntry,
37
37
  entryName,
38
- internalDirectory,
39
- splitRoutesChunks
38
+ internalDirectory
40
39
  }: {
41
40
  routes: RouteLegacy[] | (NestedRoute | PageRoute)[];
42
41
  ssrMode?: SSRMode | undefined;
43
42
  nestedRoutesEntry?: string | undefined;
44
43
  entryName: string;
45
44
  internalDirectory: string;
46
- splitRoutesChunks?: boolean | undefined;
47
- }) => Promise<string>;
45
+ }) => Promise<string>;
46
+ export declare function ssrLoaderCombinedModule(entrypoints: Entrypoint[], entrypoint: Entrypoint, config: AppNormalizedConfig<'shared'>, appContext: IAppContext): string | null;
@@ -24,4 +24,5 @@ export declare const parseModule: ({
24
24
  filename: string;
25
25
  }) => Promise<readonly [imports: readonly import("es-module-lexer").ImportSpecifier[], exports: readonly import("es-module-lexer").ExportSpecifier[], facade: boolean]>;
26
26
  export declare const hasLoader: (filename: string) => Promise<boolean>;
27
- export declare const getServerLoadersFile: (internalDirectory: string, entryName: string) => string;
27
+ export declare const getServerLoadersFile: (internalDirectory: string, entryName: string) => string;
28
+ export declare const getServerCombinedModueFile: (internalDirectory: string, entryName: string) => string;
@@ -7,7 +7,6 @@ export type BuilderOutputConfig = UnwrapBuilderConfig<BuilderConfig, 'output'>;
7
7
  export type RsBuilderOutputConfig = UnwrapBuilderConfig<RsBuilderConfig, 'output'>;
8
8
  export interface SharedOutputConfig extends BuilderSharedOutputConfig {
9
9
  ssg?: SSGConfig;
10
- splitRoutesChunks?: boolean;
11
10
  disableNodePolyfill?: boolean;
12
11
  }
13
12
  export interface OutputUserConfig extends BuilderOutputConfig, SharedOutputConfig {}