@modern-js/app-tools 2.6.0 → 2.7.1-alpha.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 (322) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +2 -2
  3. package/dist/cjs/analyze/generateCode.js +7 -7
  4. package/dist/cjs/analyze/getClientRoutes/getRoutes.js +1 -1
  5. package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +1 -1
  6. package/dist/cjs/analyze/index.js +20 -2
  7. package/dist/cjs/analyze/nestedRoutes.js +1 -1
  8. package/dist/cjs/analyze/templates.js +6 -4
  9. package/dist/cjs/builder/builder-webpack/builderPlugins/compatModern.js +2 -13
  10. package/dist/cjs/builder/generator/index.js +10 -2
  11. package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +101 -0
  12. package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +91 -0
  13. package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +140 -0
  14. package/dist/cjs/builder/shared/builderPlugins/index.js +19 -0
  15. package/dist/cjs/builder/{builder-webpack/webpackPlugins → shared/bundlerPlugins}/RouterPlugin.js +11 -5
  16. package/dist/cjs/builder/shared/bundlerPlugins/index.js +19 -0
  17. package/dist/cjs/builder/shared/index.js +1 -1
  18. package/dist/cjs/commands/dev.js +6 -0
  19. package/dist/cjs/commands/serve.js +17 -0
  20. package/dist/cjs/index.js +1 -1
  21. package/dist/cjs/locale/en.js +1 -0
  22. package/dist/cjs/locale/zh.js +1 -0
  23. package/dist/cjs/schema/index.js +4 -0
  24. package/dist/esm/analyze/generateCode.js +8 -9
  25. package/dist/esm/analyze/getClientRoutes/getRoutes.js +1 -1
  26. package/dist/esm/analyze/getClientRoutes/getRoutesLegacy.js +1 -1
  27. package/dist/esm/analyze/index.js +15 -3
  28. package/dist/esm/analyze/nestedRoutes.js +1 -1
  29. package/dist/esm/analyze/templates.js +6 -5
  30. package/dist/esm/builder/builder-webpack/builderPlugins/compatModern.js +0 -11
  31. package/dist/esm/builder/generator/index.js +6 -4
  32. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +101 -0
  33. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +120 -0
  34. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +131 -0
  35. package/dist/esm/builder/shared/builderPlugins/index.js +3 -0
  36. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +350 -0
  37. package/dist/esm/builder/shared/bundlerPlugins/index.js +3 -0
  38. package/dist/esm/builder/shared/index.js +1 -1
  39. package/dist/esm/commands/dev.js +6 -0
  40. package/dist/esm/commands/serve.js +6 -1
  41. package/dist/esm/index.js +1 -1
  42. package/dist/esm/locale/en.js +1 -0
  43. package/dist/esm/locale/zh.js +1 -0
  44. package/dist/esm/schema/index.js +7 -0
  45. package/dist/esm-node/analyze/generateCode.js +14 -9
  46. package/dist/esm-node/analyze/getClientRoutes/getRoutes.js +1 -1
  47. package/dist/esm-node/analyze/getClientRoutes/getRoutesLegacy.js +1 -1
  48. package/dist/esm-node/analyze/index.js +22 -3
  49. package/dist/esm-node/analyze/nestedRoutes.js +1 -1
  50. package/dist/esm-node/analyze/templates.js +6 -4
  51. package/dist/esm-node/builder/builder-webpack/builderPlugins/compatModern.js +2 -13
  52. package/dist/esm-node/builder/generator/index.js +10 -2
  53. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +67 -0
  54. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +67 -0
  55. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +119 -0
  56. package/dist/esm-node/builder/shared/builderPlugins/index.js +3 -0
  57. package/dist/esm-node/builder/{builder-webpack/webpackPlugins → shared/bundlerPlugins}/RouterPlugin.js +11 -5
  58. package/dist/esm-node/builder/shared/bundlerPlugins/index.js +3 -0
  59. package/dist/esm-node/builder/shared/index.js +1 -1
  60. package/dist/esm-node/commands/dev.js +6 -0
  61. package/dist/esm-node/commands/serve.js +18 -1
  62. package/dist/esm-node/index.js +1 -1
  63. package/dist/esm-node/locale/en.js +1 -0
  64. package/dist/esm-node/locale/zh.js +1 -0
  65. package/dist/esm-node/schema/index.js +4 -0
  66. package/dist/js/modern/analyze/constants.js +54 -0
  67. package/dist/js/modern/analyze/generateCode.js +247 -0
  68. package/dist/js/modern/analyze/getBundleEntry.js +71 -0
  69. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +220 -0
  70. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +216 -0
  71. package/dist/js/modern/analyze/getClientRoutes/index.js +6 -0
  72. package/dist/js/modern/analyze/getClientRoutes/utils.js +31 -0
  73. package/dist/js/modern/analyze/getFileSystemEntry.js +109 -0
  74. package/dist/js/modern/analyze/getHtmlTemplate.js +115 -0
  75. package/dist/js/modern/analyze/getServerRoutes.js +175 -0
  76. package/dist/js/modern/analyze/index.js +332 -0
  77. package/dist/js/modern/analyze/isDefaultExportFunction.js +42 -0
  78. package/dist/js/modern/analyze/makeLegalIdentifier.js +13 -0
  79. package/dist/js/modern/analyze/nestedRoutes.js +157 -0
  80. package/dist/js/modern/analyze/templates.js +334 -0
  81. package/dist/js/modern/analyze/utils.js +141 -0
  82. package/dist/{esm-node/builder/shared/builderPlugins/adapterModern.js → js/modern/builder/builderPlugins/compatModern.js} +135 -104
  83. package/dist/js/modern/builder/index.js +159 -0
  84. package/dist/js/modern/builder/loaders/routerLoader.js +17 -0
  85. package/dist/js/modern/builder/loaders/serverModuleLoader.js +7 -0
  86. package/dist/js/modern/builder/share.js +46 -0
  87. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +30 -0
  88. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +37 -0
  89. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +113 -0
  90. package/dist/js/modern/commands/build.js +91 -0
  91. package/dist/js/modern/commands/deploy.js +28 -0
  92. package/dist/js/modern/commands/dev.js +109 -0
  93. package/dist/js/modern/commands/index.js +3 -0
  94. package/dist/js/modern/commands/inspect.js +38 -0
  95. package/dist/js/modern/commands/serve.js +54 -0
  96. package/dist/js/modern/config/default.js +175 -0
  97. package/dist/js/modern/config/index.js +8 -0
  98. package/dist/js/modern/config/initial/createHtmlConfig.js +35 -0
  99. package/dist/js/modern/config/initial/createOutputConfig.js +68 -0
  100. package/dist/js/modern/config/initial/createSourceConfig.js +39 -0
  101. package/dist/js/modern/config/initial/createToolsConfig.js +42 -0
  102. package/dist/js/modern/config/initial/index.js +16 -0
  103. package/dist/js/modern/config/initial/inits.js +152 -0
  104. package/dist/js/modern/config/initial/transformNormalizedConfig.js +47 -0
  105. package/dist/js/modern/defineConfig.js +27 -0
  106. package/dist/js/modern/exports/server.js +4 -0
  107. package/dist/js/modern/hooks.js +35 -0
  108. package/dist/js/modern/index.js +211 -0
  109. package/dist/js/modern/initialize/index.js +124 -0
  110. package/dist/js/modern/locale/en.js +36 -0
  111. package/dist/js/modern/locale/index.js +9 -0
  112. package/dist/js/modern/locale/zh.js +36 -0
  113. package/dist/js/modern/schema/Schema.js +40 -0
  114. package/dist/js/modern/schema/index.js +88 -0
  115. package/dist/js/modern/schema/legacy.js +148 -0
  116. package/dist/js/modern/types/config/deploy.js +0 -0
  117. package/dist/js/modern/types/config/dev.js +0 -0
  118. package/dist/js/modern/types/config/experiments.js +0 -0
  119. package/dist/js/modern/types/config/html.js +0 -0
  120. package/dist/js/modern/types/config/index.js +1 -0
  121. package/dist/js/modern/types/config/output.js +0 -0
  122. package/dist/js/modern/types/config/performance.js +0 -0
  123. package/dist/js/modern/types/config/security.js +0 -0
  124. package/dist/js/modern/types/config/source.js +0 -0
  125. package/dist/js/modern/types/config/tools.js +0 -0
  126. package/dist/js/modern/types/hooks.js +0 -0
  127. package/dist/js/modern/types/index.js +3 -0
  128. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  129. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  130. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  131. package/dist/js/modern/types/legacyConfig/output.js +0 -0
  132. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  133. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  134. package/dist/js/modern/utils/config.js +128 -0
  135. package/dist/js/modern/utils/createServer.js +75 -0
  136. package/dist/js/modern/utils/env.js +15 -0
  137. package/dist/js/modern/utils/generateWatchFiles.js +55 -0
  138. package/dist/js/modern/utils/getSelectedEntries.js +58 -0
  139. package/dist/js/modern/utils/getServerInternalPlugins.js +58 -0
  140. package/dist/js/modern/utils/language.js +8 -0
  141. package/dist/js/modern/utils/printInstructions.js +31 -0
  142. package/dist/js/modern/utils/restart.js +44 -0
  143. package/dist/js/modern/utils/routes.js +30 -0
  144. package/dist/js/modern/utils/types.js +0 -0
  145. package/dist/js/node/analyze/constants.js +98 -0
  146. package/dist/js/node/analyze/generateCode.js +271 -0
  147. package/dist/js/node/analyze/getBundleEntry.js +95 -0
  148. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +242 -0
  149. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +238 -0
  150. package/dist/js/node/analyze/getClientRoutes/index.js +30 -0
  151. package/dist/js/node/analyze/getClientRoutes/utils.js +58 -0
  152. package/dist/js/node/analyze/getFileSystemEntry.js +131 -0
  153. package/dist/js/node/analyze/getHtmlTemplate.js +144 -0
  154. package/dist/js/node/analyze/getServerRoutes.js +194 -0
  155. package/dist/js/node/analyze/index.js +339 -0
  156. package/dist/js/node/analyze/isDefaultExportFunction.js +71 -0
  157. package/dist/js/node/analyze/makeLegalIdentifier.js +36 -0
  158. package/dist/js/node/analyze/nestedRoutes.js +184 -0
  159. package/dist/js/node/analyze/templates.js +365 -0
  160. package/dist/js/node/analyze/utils.js +172 -0
  161. package/dist/{cjs/builder/shared/builderPlugins/adapterModern.js → js/node/builder/builderPlugins/compatModern.js} +137 -113
  162. package/dist/js/node/builder/index.js +177 -0
  163. package/dist/js/node/builder/loaders/routerLoader.js +38 -0
  164. package/dist/js/node/builder/loaders/serverModuleLoader.js +28 -0
  165. package/dist/js/node/builder/share.js +75 -0
  166. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +53 -0
  167. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +60 -0
  168. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +135 -0
  169. package/dist/js/node/commands/build.js +112 -0
  170. package/dist/js/node/commands/deploy.js +51 -0
  171. package/dist/js/node/commands/dev.js +126 -0
  172. package/dist/js/node/commands/index.js +19 -0
  173. package/dist/js/node/commands/inspect.js +61 -0
  174. package/dist/js/node/commands/serve.js +83 -0
  175. package/dist/js/node/config/default.js +197 -0
  176. package/dist/js/node/config/index.js +34 -0
  177. package/dist/js/node/config/initial/createHtmlConfig.js +58 -0
  178. package/dist/js/node/config/initial/createOutputConfig.js +91 -0
  179. package/dist/js/node/config/initial/createSourceConfig.js +62 -0
  180. package/dist/js/node/config/initial/createToolsConfig.js +65 -0
  181. package/dist/js/node/config/initial/index.js +41 -0
  182. package/dist/js/node/config/initial/inits.js +175 -0
  183. package/dist/js/node/config/initial/transformNormalizedConfig.js +70 -0
  184. package/dist/js/node/defineConfig.js +49 -0
  185. package/dist/js/node/exports/server.js +27 -0
  186. package/dist/js/node/hooks.js +54 -0
  187. package/dist/js/node/index.js +235 -0
  188. package/dist/js/node/initialize/index.js +134 -0
  189. package/dist/js/node/locale/en.js +59 -0
  190. package/dist/js/node/locale/index.js +33 -0
  191. package/dist/js/node/locale/zh.js +59 -0
  192. package/dist/js/node/schema/Schema.js +63 -0
  193. package/dist/js/node/schema/index.js +118 -0
  194. package/dist/js/node/schema/legacy.js +169 -0
  195. package/dist/js/node/types/config/deploy.js +15 -0
  196. package/dist/js/node/types/config/dev.js +15 -0
  197. package/dist/js/node/types/config/experiments.js +15 -0
  198. package/dist/js/node/types/config/html.js +15 -0
  199. package/dist/{cjs/builder/builder-webpack/webpackPlugins → js/node/types/config}/index.js +3 -3
  200. package/dist/js/node/types/config/output.js +15 -0
  201. package/dist/js/node/types/config/performance.js +15 -0
  202. package/dist/js/node/types/config/security.js +15 -0
  203. package/dist/js/node/types/config/source.js +15 -0
  204. package/dist/js/node/types/config/tools.js +15 -0
  205. package/dist/js/node/types/hooks.js +15 -0
  206. package/dist/js/node/types/index.js +19 -0
  207. package/dist/js/node/types/legacyConfig/deploy.js +15 -0
  208. package/dist/js/node/types/legacyConfig/dev.js +15 -0
  209. package/dist/js/node/types/legacyConfig/index.js +15 -0
  210. package/dist/js/node/types/legacyConfig/output.js +15 -0
  211. package/dist/js/node/types/legacyConfig/source.js +15 -0
  212. package/dist/js/node/types/legacyConfig/tools.js +15 -0
  213. package/dist/js/node/utils/config.js +153 -0
  214. package/dist/js/node/utils/createServer.js +106 -0
  215. package/dist/js/node/utils/env.js +38 -0
  216. package/dist/js/node/utils/generateWatchFiles.js +85 -0
  217. package/dist/js/node/utils/getSelectedEntries.js +81 -0
  218. package/dist/js/node/utils/getServerInternalPlugins.js +79 -0
  219. package/dist/js/node/utils/language.js +31 -0
  220. package/dist/js/node/utils/printInstructions.js +54 -0
  221. package/dist/js/node/utils/restart.js +67 -0
  222. package/dist/js/node/utils/routes.js +59 -0
  223. package/dist/js/node/utils/types.js +15 -0
  224. package/dist/js/treeshaking/analyze/constants.js +40 -0
  225. package/dist/js/treeshaking/analyze/generateCode.js +485 -0
  226. package/dist/js/treeshaking/analyze/getBundleEntry.js +62 -0
  227. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +233 -0
  228. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +231 -0
  229. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +3 -0
  230. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +23 -0
  231. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +107 -0
  232. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +302 -0
  233. package/dist/js/treeshaking/analyze/getServerRoutes.js +222 -0
  234. package/dist/js/treeshaking/analyze/index.js +697 -0
  235. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +47 -0
  236. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +13 -0
  237. package/dist/js/treeshaking/analyze/nestedRoutes.js +384 -0
  238. package/dist/js/treeshaking/analyze/templates.js +468 -0
  239. package/dist/js/treeshaking/analyze/utils.js +374 -0
  240. package/dist/{esm/builder/shared/builderPlugins/adapterModern.js → js/treeshaking/builder/builderPlugins/compatModern.js} +142 -138
  241. package/dist/js/treeshaking/builder/index.js +374 -0
  242. package/dist/js/treeshaking/builder/loaders/routerLoader.js +13 -0
  243. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +5 -0
  244. package/dist/js/treeshaking/builder/share.js +40 -0
  245. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +110 -0
  246. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +72 -0
  247. package/dist/{esm/builder/builder-webpack/webpackPlugins/RouterPlugin.js → js/treeshaking/builder/webpackPlugins/routerPlugin.js} +3 -6
  248. package/dist/js/treeshaking/commands/build.js +291 -0
  249. package/dist/js/treeshaking/commands/deploy.js +154 -0
  250. package/dist/js/treeshaking/commands/dev.js +301 -0
  251. package/dist/js/treeshaking/commands/index.js +3 -0
  252. package/dist/js/treeshaking/commands/inspect.js +149 -0
  253. package/dist/js/treeshaking/commands/serve.js +199 -0
  254. package/dist/js/treeshaking/config/default.js +210 -0
  255. package/dist/js/treeshaking/config/index.js +3 -0
  256. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +19 -0
  257. package/dist/js/treeshaking/config/initial/createOutputConfig.js +41 -0
  258. package/dist/js/treeshaking/config/initial/createSourceConfig.js +42 -0
  259. package/dist/js/treeshaking/config/initial/createToolsConfig.js +23 -0
  260. package/dist/js/treeshaking/config/initial/index.js +12 -0
  261. package/dist/js/treeshaking/config/initial/inits.js +209 -0
  262. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +35 -0
  263. package/dist/js/treeshaking/defineConfig.js +61 -0
  264. package/dist/js/treeshaking/exports/server.js +2 -0
  265. package/dist/js/treeshaking/hooks.js +29 -0
  266. package/dist/js/treeshaking/index.js +706 -0
  267. package/dist/js/treeshaking/initialize/index.js +276 -0
  268. package/dist/js/treeshaking/locale/en.js +38 -0
  269. package/dist/js/treeshaking/locale/index.js +9 -0
  270. package/dist/js/treeshaking/locale/zh.js +38 -0
  271. package/dist/js/treeshaking/schema/Schema.js +273 -0
  272. package/dist/js/treeshaking/schema/index.js +181 -0
  273. package/dist/js/treeshaking/schema/legacy.js +337 -0
  274. package/dist/js/treeshaking/types/config/deploy.js +1 -0
  275. package/dist/js/treeshaking/types/config/dev.js +1 -0
  276. package/dist/js/treeshaking/types/config/experiments.js +1 -0
  277. package/dist/js/treeshaking/types/config/html.js +1 -0
  278. package/dist/js/treeshaking/types/config/index.js +1 -0
  279. package/dist/js/treeshaking/types/config/output.js +1 -0
  280. package/dist/js/treeshaking/types/config/performance.js +1 -0
  281. package/dist/js/treeshaking/types/config/security.js +1 -0
  282. package/dist/js/treeshaking/types/config/source.js +1 -0
  283. package/dist/js/treeshaking/types/config/tools.js +1 -0
  284. package/dist/js/treeshaking/types/hooks.js +1 -0
  285. package/dist/js/treeshaking/types/index.js +3 -0
  286. package/dist/js/treeshaking/types/legacyConfig/deploy.js +1 -0
  287. package/dist/js/treeshaking/types/legacyConfig/dev.js +1 -0
  288. package/dist/js/treeshaking/types/legacyConfig/index.js +1 -0
  289. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -0
  290. package/dist/js/treeshaking/types/legacyConfig/source.js +1 -0
  291. package/dist/js/treeshaking/types/legacyConfig/tools.js +1 -0
  292. package/dist/js/treeshaking/utils/config.js +302 -0
  293. package/dist/js/treeshaking/utils/createServer.js +258 -0
  294. package/dist/js/treeshaking/utils/env.js +13 -0
  295. package/dist/js/treeshaking/utils/generateWatchFiles.js +214 -0
  296. package/dist/js/treeshaking/utils/getSelectedEntries.js +186 -0
  297. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +210 -0
  298. package/dist/js/treeshaking/utils/language.js +6 -0
  299. package/dist/js/treeshaking/utils/printInstructions.js +152 -0
  300. package/dist/js/treeshaking/utils/restart.js +187 -0
  301. package/dist/js/treeshaking/utils/routes.js +153 -0
  302. package/dist/js/treeshaking/utils/types.js +1 -0
  303. package/dist/types/analyze/templates.d.ts +5 -3
  304. package/dist/types/builder/shared/builderPlugins/adapterBasic.d.ts +7 -0
  305. package/dist/types/builder/shared/builderPlugins/adapterHtml.d.ts +5 -0
  306. package/dist/types/builder/shared/builderPlugins/adapterSSR.d.ts +4 -0
  307. package/dist/types/builder/shared/builderPlugins/index.d.ts +3 -0
  308. package/dist/types/builder/shared/bundlerPlugins/RouterPlugin.d.ts +5 -0
  309. package/dist/types/builder/shared/bundlerPlugins/index.d.ts +3 -0
  310. package/dist/types/builder/shared/index.d.ts +1 -1
  311. package/dist/types/builder/shared/types.d.ts +7 -4
  312. package/dist/types/locale/en.d.ts +1 -0
  313. package/dist/types/locale/index.d.ts +2 -0
  314. package/dist/types/locale/zh.d.ts +1 -0
  315. package/dist/types/types/config/output.d.ts +3 -15
  316. package/lib/types.d.ts +1 -1
  317. package/package.json +28 -28
  318. package/dist/esm/builder/builder-webpack/webpackPlugins/index.js +0 -1
  319. package/dist/esm-node/builder/builder-webpack/webpackPlugins/index.js +0 -1
  320. package/dist/types/builder/builder-webpack/webpackPlugins/RouterPlugin.d.ts +0 -4
  321. package/dist/types/builder/builder-webpack/webpackPlugins/index.d.ts +0 -1
  322. package/dist/types/builder/shared/builderPlugins/adapterModern.d.ts +0 -13
@@ -0,0 +1,131 @@
1
+ import { mergeBuilderConfig } from "@modern-js/builder-shared";
2
+ import { HtmlAsyncChunkPlugin, RouterPlugin } from "../bundlerPlugins";
3
+ import { isHtmlEnabled } from "./adapterHtml";
4
+ var builderPluginAdapterSSR = function(options) {
5
+ return {
6
+ name: "builder-plugin-adapter-modern-ssr",
7
+ setup: function setup(api) {
8
+ var normalizedConfig = options.normalizedConfig;
9
+ api.modifyBuilderConfig(function(config) {
10
+ if (isStreamingSSR(normalizedConfig)) {
11
+ return mergeBuilderConfig(config, {
12
+ html: {
13
+ inject: "body"
14
+ }
15
+ });
16
+ }
17
+ return config;
18
+ });
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
39
+ });
40
+ }
41
+ });
42
+ }
43
+ };
44
+ };
45
+ var isStreamingSSR = function(userConfig) {
46
+ var isStreaming = function(ssr) {
47
+ return ssr && typeof ssr === "object" && ssr.mode === "stream";
48
+ };
49
+ var server = userConfig.server;
50
+ if (isStreaming(server.ssr)) {
51
+ return true;
52
+ }
53
+ if ((server === null || server === void 0 ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
54
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
55
+ try {
56
+ for(var _iterator = Object.keys(server.ssrByEntries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
57
+ var name = _step.value;
58
+ if (isStreaming(server.ssrByEntries[name])) {
59
+ return true;
60
+ }
61
+ }
62
+ } catch (err) {
63
+ _didIteratorError = true;
64
+ _iteratorError = err;
65
+ } finally{
66
+ try {
67
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
68
+ _iterator.return();
69
+ }
70
+ } finally{
71
+ if (_didIteratorError) {
72
+ throw _iteratorError;
73
+ }
74
+ }
75
+ }
76
+ }
77
+ return false;
78
+ };
79
+ function applyAsyncChunkHtmlPlugin(param) {
80
+ var chain = param.chain, modernConfig = param.modernConfig, CHAIN_ID = param.CHAIN_ID, HtmlBundlerPlugin = param.HtmlBundlerPlugin;
81
+ if (isStreamingSSR(modernConfig)) {
82
+ chain.plugin(CHAIN_ID.PLUGIN.HTML_ASYNC_CHUNK).use(HtmlAsyncChunkPlugin, [
83
+ HtmlBundlerPlugin
84
+ ]);
85
+ }
86
+ }
87
+ function applyRouterPlugin(chain, options) {
88
+ var _normalizedConfig_runtime;
89
+ var appContext = options.appContext, normalizedConfig = options.normalizedConfig;
90
+ var entrypoints = appContext.entrypoints;
91
+ var existNestedRoutes = entrypoints.some(function(entrypoint) {
92
+ return entrypoint.nestedRoutesEntry;
93
+ });
94
+ var routerConfig = normalizedConfig === null || normalizedConfig === void 0 ? void 0 : (_normalizedConfig_runtime = normalizedConfig.runtime) === null || _normalizedConfig_runtime === void 0 ? void 0 : _normalizedConfig_runtime.router;
95
+ var routerManifest = Boolean(routerConfig === null || routerConfig === void 0 ? void 0 : routerConfig.manifest);
96
+ if (existNestedRoutes || routerManifest) {
97
+ chain.plugin("route-plugin").use(RouterPlugin);
98
+ }
99
+ }
100
+ function applyFilterEntriesBySSRConfig(param) {
101
+ var isProd = param.isProd, chain = param.chain, appNormalizedConfig = param.appNormalizedConfig;
102
+ var _outputConfig_ssg;
103
+ var serverConfig = appNormalizedConfig.server, outputConfig = appNormalizedConfig.output;
104
+ var entries = chain.entryPoints.entries();
105
+ if (isProd && ((outputConfig === null || outputConfig === void 0 ? void 0 : outputConfig.ssg) === true || typeof (outputConfig === null || outputConfig === void 0 ? void 0 : (_outputConfig_ssg = outputConfig.ssg) === null || _outputConfig_ssg === void 0 ? void 0 : _outputConfig_ssg[0]) === "function")) {
106
+ return;
107
+ }
108
+ if (typeof entries === "undefined") {
109
+ throw new Error("No entry found, one of src/routes/layout.tsx, src/App.tsx, src/index.tsx is required");
110
+ }
111
+ var entryNames = Object.keys(entries);
112
+ if (isProd && entryNames.length === 1 && (outputConfig === null || outputConfig === void 0 ? void 0 : outputConfig.ssg)) {
113
+ return;
114
+ }
115
+ var ssgEntries = [];
116
+ if (isProd && (outputConfig === null || outputConfig === void 0 ? void 0 : outputConfig.ssg)) {
117
+ var ssg = outputConfig.ssg;
118
+ entryNames.forEach(function(name) {
119
+ if (ssg[name]) {
120
+ ssgEntries.push(name);
121
+ }
122
+ });
123
+ }
124
+ var _ref = serverConfig || {}, ssr = _ref.ssr, ssrByEntries = _ref.ssrByEntries;
125
+ entryNames.forEach(function(name) {
126
+ if (!ssgEntries.includes(name) && (ssr && (ssrByEntries === null || ssrByEntries === void 0 ? void 0 : ssrByEntries[name]) === false || !ssr && !(ssrByEntries === null || ssrByEntries === void 0 ? void 0 : ssrByEntries[name]))) {
127
+ chain.entryPoints.delete(name);
128
+ }
129
+ });
130
+ }
131
+ export { builderPluginAdapterSSR };
@@ -0,0 +1,3 @@
1
+ export * from "./adapterBasic";
2
+ export * from "./adapterHtml";
3
+ export * from "./adapterSSR";
@@ -0,0 +1,350 @@
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithHoles(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _arrayWithoutHoles(arr) {
10
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
11
+ }
12
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
13
+ try {
14
+ var info = gen[key](arg);
15
+ var value = info.value;
16
+ } catch (error) {
17
+ reject(error);
18
+ return;
19
+ }
20
+ if (info.done) {
21
+ resolve(value);
22
+ } else {
23
+ Promise.resolve(value).then(_next, _throw);
24
+ }
25
+ }
26
+ function _asyncToGenerator(fn) {
27
+ return function() {
28
+ var self = this, args = arguments;
29
+ return new Promise(function(resolve, reject) {
30
+ var gen = fn.apply(self, args);
31
+ function _next(value) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
33
+ }
34
+ function _throw(err) {
35
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
36
+ }
37
+ _next(undefined);
38
+ });
39
+ };
40
+ }
41
+ function _classCallCheck(instance, Constructor) {
42
+ if (!(instance instanceof Constructor)) {
43
+ throw new TypeError("Cannot call a class as a function");
44
+ }
45
+ }
46
+ function _defineProperties(target, props) {
47
+ for(var i = 0; i < props.length; i++){
48
+ var descriptor = props[i];
49
+ descriptor.enumerable = descriptor.enumerable || false;
50
+ descriptor.configurable = true;
51
+ if ("value" in descriptor) descriptor.writable = true;
52
+ Object.defineProperty(target, descriptor.key, descriptor);
53
+ }
54
+ }
55
+ function _createClass(Constructor, protoProps, staticProps) {
56
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
57
+ if (staticProps) _defineProperties(Constructor, staticProps);
58
+ return Constructor;
59
+ }
60
+ function _iterableToArray(iter) {
61
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
62
+ }
63
+ function _iterableToArrayLimit(arr, i) {
64
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
65
+ if (_i == null) return;
66
+ var _arr = [];
67
+ var _n = true;
68
+ var _d = false;
69
+ var _s, _e;
70
+ try {
71
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
72
+ _arr.push(_s.value);
73
+ if (i && _arr.length === i) break;
74
+ }
75
+ } catch (err) {
76
+ _d = true;
77
+ _e = err;
78
+ } finally{
79
+ try {
80
+ if (!_n && _i["return"] != null) _i["return"]();
81
+ } finally{
82
+ if (_d) throw _e;
83
+ }
84
+ }
85
+ return _arr;
86
+ }
87
+ function _nonIterableRest() {
88
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
89
+ }
90
+ function _nonIterableSpread() {
91
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
92
+ }
93
+ function _slicedToArray(arr, i) {
94
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
95
+ }
96
+ function _toConsumableArray(arr) {
97
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
98
+ }
99
+ function _unsupportedIterableToArray(o, minLen) {
100
+ if (!o) return;
101
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
102
+ var n = Object.prototype.toString.call(o).slice(8, -1);
103
+ if (n === "Object" && o.constructor) n = o.constructor.name;
104
+ if (n === "Map" || n === "Set") return Array.from(n);
105
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
106
+ }
107
+ var __generator = this && this.__generator || function(thisArg, body) {
108
+ var f, y, t, g, _ = {
109
+ label: 0,
110
+ sent: function() {
111
+ if (t[0] & 1) throw t[1];
112
+ return t[1];
113
+ },
114
+ trys: [],
115
+ ops: []
116
+ };
117
+ return g = {
118
+ next: verb(0),
119
+ "throw": verb(1),
120
+ "return": verb(2)
121
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
122
+ return this;
123
+ }), g;
124
+ function verb(n) {
125
+ return function(v) {
126
+ return step([
127
+ n,
128
+ v
129
+ ]);
130
+ };
131
+ }
132
+ function step(op) {
133
+ if (f) throw new TypeError("Generator is already executing.");
134
+ while(_)try {
135
+ 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;
136
+ if (y = 0, t) op = [
137
+ op[0] & 2,
138
+ t.value
139
+ ];
140
+ switch(op[0]){
141
+ case 0:
142
+ case 1:
143
+ t = op;
144
+ break;
145
+ case 4:
146
+ _.label++;
147
+ return {
148
+ value: op[1],
149
+ done: false
150
+ };
151
+ case 5:
152
+ _.label++;
153
+ y = op[1];
154
+ op = [
155
+ 0
156
+ ];
157
+ continue;
158
+ case 7:
159
+ op = _.ops.pop();
160
+ _.trys.pop();
161
+ continue;
162
+ default:
163
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
164
+ _ = 0;
165
+ continue;
166
+ }
167
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
168
+ _.label = op[1];
169
+ break;
170
+ }
171
+ if (op[0] === 6 && _.label < t[1]) {
172
+ _.label = t[1];
173
+ t = op;
174
+ break;
175
+ }
176
+ if (t && _.label < t[2]) {
177
+ _.label = t[2];
178
+ _.ops.push(op);
179
+ break;
180
+ }
181
+ if (t[2]) _.ops.pop();
182
+ _.trys.pop();
183
+ continue;
184
+ }
185
+ op = body.call(thisArg, _);
186
+ } catch (e) {
187
+ op = [
188
+ 6,
189
+ e
190
+ ];
191
+ y = 0;
192
+ } finally{
193
+ f = t = 0;
194
+ }
195
+ if (op[0] & 5) throw op[1];
196
+ return {
197
+ value: op[0] ? op[1] : void 0,
198
+ done: true
199
+ };
200
+ }
201
+ };
202
+ import path from "path";
203
+ import { fs, ROUTE_MANIFEST, logger, ROUTE_MINIFEST_FILE } from "@modern-js/utils";
204
+ var PLUGIN_NAME = "ModernjsRoutePlugin";
205
+ var RouterPlugin = /*#__PURE__*/ function() {
206
+ "use strict";
207
+ function RouterPlugin() {
208
+ _classCallCheck(this, RouterPlugin);
209
+ }
210
+ _createClass(RouterPlugin, [
211
+ {
212
+ key: "apply",
213
+ value: function apply(compiler) {
214
+ var target = compiler.options.target;
215
+ if (target === "node" || Array.isArray(target) && target.includes("node")) {
216
+ return;
217
+ }
218
+ if (target === "webworker" || Array.isArray(target) && target.includes("webworker")) {
219
+ return;
220
+ }
221
+ var webpack = compiler.webpack;
222
+ var Compilation = webpack.Compilation, sources = webpack.sources;
223
+ var RawSource = sources.RawSource;
224
+ var PROCESS_ASSETS_STAGE_REPORT = Compilation.PROCESS_ASSETS_STAGE_REPORT;
225
+ var outputPath = compiler.options.output.path;
226
+ var newAssetsMap = /* @__PURE__ */ new Map();
227
+ var normalizePath = function(path2) {
228
+ if (!path2.endsWith("/")) {
229
+ return "".concat(path2, "/");
230
+ }
231
+ return path2;
232
+ };
233
+ compiler.hooks.thisCompilation.tap(PLUGIN_NAME, function(compilation) {
234
+ compilation.hooks.processAssets.tapPromise({
235
+ name: PLUGIN_NAME,
236
+ stage: PROCESS_ASSETS_STAGE_REPORT
237
+ }, /*#__PURE__*/ _asyncToGenerator(function() {
238
+ var stats, publicPath, _stats_chunks, chunks, routeAssets, namedChunkGroups, assetsByChunkName, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, name, chunkGroup, manifest, injectedContent, entrypointsArray, entryChunkIds, entryChunks, entryChunkFiles, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, file, asset, newContent, filename;
239
+ return __generator(this, function(_state) {
240
+ switch(_state.label){
241
+ case 0:
242
+ stats = compilation.getStats().toJson({
243
+ chunkGroups: true,
244
+ chunks: true
245
+ });
246
+ publicPath = stats.publicPath, _stats_chunks = stats.chunks, chunks = _stats_chunks === void 0 ? [] : _stats_chunks;
247
+ routeAssets = {};
248
+ namedChunkGroups = stats.namedChunkGroups, assetsByChunkName = stats.assetsByChunkName;
249
+ if (!namedChunkGroups || !assetsByChunkName) {
250
+ logger.warn("Route manifest does not exist, performance will be affected");
251
+ return [
252
+ 2
253
+ ];
254
+ }
255
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
256
+ try {
257
+ for(_iterator = Object.entries(namedChunkGroups)[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
258
+ _step_value = _slicedToArray(_step.value, 2), name = _step_value[0], chunkGroup = _step_value[1];
259
+ if (assetsByChunkName[name]) {
260
+ routeAssets[name] = {
261
+ chunkIds: chunkGroup.chunks,
262
+ assets: assetsByChunkName[name].map(function(item) {
263
+ return publicPath ? normalizePath(publicPath) + item : item;
264
+ })
265
+ };
266
+ }
267
+ }
268
+ } catch (err) {
269
+ _didIteratorError = true;
270
+ _iteratorError = err;
271
+ } finally{
272
+ try {
273
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
274
+ _iterator.return();
275
+ }
276
+ } finally{
277
+ if (_didIteratorError) {
278
+ throw _iteratorError;
279
+ }
280
+ }
281
+ }
282
+ manifest = {
283
+ routeAssets: routeAssets
284
+ };
285
+ injectedContent = "\n ;(function(){\n window.".concat(ROUTE_MANIFEST, " = ").concat(JSON.stringify(manifest), ";\n })();\n ");
286
+ entrypointsArray = Array.from(compilation.entrypoints.entries());
287
+ entryChunkIds = entrypointsArray.map(function(entrypoint) {
288
+ return entrypoint[0];
289
+ });
290
+ entryChunks = _toConsumableArray(chunks).filter(function(chunk) {
291
+ var _chunk_names;
292
+ return (_chunk_names = chunk.names) === null || _chunk_names === void 0 ? void 0 : _chunk_names.some(function(name) {
293
+ return entryChunkIds.includes(name);
294
+ });
295
+ });
296
+ entryChunkFiles = entryChunks.map(function(chunk) {
297
+ return _toConsumableArray(chunk.files || []).find(function(fname) {
298
+ return fname.includes(".js");
299
+ });
300
+ });
301
+ _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
302
+ try {
303
+ for(_iterator1 = entryChunkFiles[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
304
+ file = _step1.value;
305
+ asset = compilation.assets[file];
306
+ newContent = "".concat(injectedContent).concat(asset.source().toString());
307
+ newAssetsMap.set(path.join(outputPath, file), newContent);
308
+ compilation.updateAsset(file, new RawSource(newContent), // FIXME: The arguments third of updatgeAsset is a optional function in webpack.
309
+ void 0);
310
+ }
311
+ } catch (err) {
312
+ _didIteratorError1 = true;
313
+ _iteratorError1 = err;
314
+ } finally{
315
+ try {
316
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
317
+ _iterator1.return();
318
+ }
319
+ } finally{
320
+ if (_didIteratorError1) {
321
+ throw _iteratorError1;
322
+ }
323
+ }
324
+ }
325
+ filename = path.join(outputPath, ROUTE_MINIFEST_FILE);
326
+ return [
327
+ 4,
328
+ fs.ensureFile(filename)
329
+ ];
330
+ case 1:
331
+ _state.sent();
332
+ return [
333
+ 4,
334
+ fs.writeFile(filename, JSON.stringify(manifest, null, 2))
335
+ ];
336
+ case 2:
337
+ _state.sent();
338
+ return [
339
+ 2
340
+ ];
341
+ }
342
+ });
343
+ }));
344
+ });
345
+ }
346
+ }
347
+ ]);
348
+ return RouterPlugin;
349
+ }();
350
+ export { RouterPlugin };
@@ -0,0 +1,3 @@
1
+ export * from "./HtmlAsyncChunkPlugin";
2
+ export * from "./HtmlBottomTemplate";
3
+ export * from "./RouterPlugin";
@@ -1,3 +1,3 @@
1
1
  export * from "./createCopyPattern";
2
2
  export * from "./types";
3
- export * from "./builderPlugins/adapterModern";
3
+ export * from "./builderPlugins";
@@ -240,6 +240,12 @@ var dev = function() {
240
240
  https: normalizedConfig.dev.https,
241
241
  host: normalizedConfig.dev.host
242
242
  }, (_normalizedConfig_tools = normalizedConfig.tools) === null || _normalizedConfig_tools === void 0 ? void 0 : _normalizedConfig_tools.devServer),
243
+ appContext: {
244
+ appDirectory: appContext.appDirectory,
245
+ sharedDirectory: appContext.sharedDirectory,
246
+ apiDirectory: appContext.apiDirectory,
247
+ lambdaDirectory: appContext.lambdaDirectory
248
+ },
243
249
  pwd: appDirectory,
244
250
  config: normalizedConfig,
245
251
  serverConfigFile: serverConfigFile,
@@ -122,7 +122,7 @@ var __generator = this && this.__generator || function(thisArg, body) {
122
122
  };
123
123
  }
124
124
  };
125
- import { logger, chalk, isApiOnly } from "@modern-js/utils";
125
+ import { logger, chalk, isApiOnly, getTargetDir } from "@modern-js/utils";
126
126
  import server from "@modern-js/prod-server";
127
127
  import { printInstructions } from "../utils/printInstructions";
128
128
  import { injectDataLoaderPlugin } from "../utils/createServer";
@@ -155,6 +155,11 @@ var start = function() {
155
155
  server({
156
156
  pwd: appDirectory,
157
157
  config: userConfig,
158
+ appContext: {
159
+ sharedDirectory: getTargetDir(appContext.sharedDirectory, appContext.appDirectory, appContext.distDirectory),
160
+ apiDirectory: getTargetDir(appContext.apiDirectory, appContext.appDirectory, appContext.distDirectory),
161
+ lambdaDirectory: getTargetDir(appContext.lambdaDirectory, appContext.appDirectory, appContext.distDirectory)
162
+ },
158
163
  serverConfigFile: serverConfigFile,
159
164
  internalPlugins: injectDataLoaderPlugin(serverInternalPlugins),
160
165
  apiOnly: apiOnly
package/dist/esm/index.js CHANGED
@@ -201,7 +201,7 @@ var devCommand = function() {
201
201
  ];
202
202
  case 1:
203
203
  devToolMetas = _state.sent();
204
- devProgram = program.command("dev").alias("start").usage("[options]").description(i18n.t(localeKeys.command.dev.describe)).option("-c --config <config>", i18n.t(localeKeys.command.shared.config)).option("-e --entry [entry...]", i18n.t(localeKeys.command.dev.entry)).option("--analyze", i18n.t(localeKeys.command.shared.analyze)).option("--api-only", i18n.t(localeKeys.command.dev.apiOnly)).action(function() {
204
+ devProgram = program.command("dev").alias("start").usage("[options]").description(i18n.t(localeKeys.command.dev.describe)).option("-c --config <config>", i18n.t(localeKeys.command.shared.config)).option("-e --entry [entry...]", i18n.t(localeKeys.command.dev.entry)).option("--analyze", i18n.t(localeKeys.command.shared.analyze)).option("--api-only", i18n.t(localeKeys.command.dev.apiOnly)).option("--web-only", i18n.t(localeKeys.command.dev.webOnly)).action(function() {
205
205
  var _ref = _asyncToGenerator(function(options) {
206
206
  var dev;
207
207
  return __generator(this, function(_state) {
@@ -8,6 +8,7 @@ var EN_LOCALE = {
8
8
  describe: "start dev server",
9
9
  entry: "compiler by entry",
10
10
  apiOnly: "start api server only",
11
+ webOnly: "start web server only",
11
12
  selectEntry: "Please select the entry that needs to be built",
12
13
  requireEntry: "You must choose at least one entry"
13
14
  },
@@ -8,6 +8,7 @@ var ZH_LOCALE = {
8
8
  describe: "本地开发命令",
9
9
  entry: "指定入口,编译特定的页面",
10
10
  apiOnly: "仅启动 API 接口服务",
11
+ webOnly: "仅启动 Web 服务",
11
12
  selectEntry: "请选择需要构建的入口",
12
13
  requireEntry: "请至少选择一个入口"
13
14
  },
@@ -71,6 +71,13 @@ var bff = {
71
71
  prefix: {
72
72
  type: "string"
73
73
  },
74
+ httpMethodDecider: {
75
+ type: "string",
76
+ enum: [
77
+ "functionName",
78
+ "inputParams"
79
+ ]
80
+ },
74
81
  proxy: {
75
82
  type: "object",
76
83
  additionalProperties: {
@@ -1,8 +1,12 @@
1
1
  import path from "path";
2
- import { fs, getEntryOptions, isRouterV5, logger } from "@modern-js/utils";
3
2
  import {
4
- useResolvedConfigContext
5
- } from "@modern-js/core";
3
+ fs,
4
+ getEntryOptions,
5
+ isRouterV5,
6
+ isSSGEntry,
7
+ isUseSSRBundle,
8
+ logger
9
+ } from "@modern-js/utils";
6
10
  import * as templates from "./templates";
7
11
  import { getClientRoutes, getClientRoutesLegacy } from "./getClientRoutes";
8
12
  import {
@@ -73,6 +77,7 @@ const generateCode = async (appContext, config, entrypoints, api) => {
73
77
  const getRoutes = isV5 ? getClientRoutesLegacy : getClientRoutes;
74
78
  await Promise.all(entrypoints.map(generateEntryCode));
75
79
  async function generateEntryCode(entrypoint) {
80
+ var _a;
76
81
  const { entryName, isAutoMount, customBootstrap, fileSystemRoutes } = entrypoint;
77
82
  if (isAutoMount) {
78
83
  if (fileSystemRoutes) {
@@ -105,18 +110,17 @@ const generateCode = async (appContext, config, entrypoints, api) => {
105
110
  entrypoint,
106
111
  routes: initialRoutes
107
112
  });
108
- const config2 = useResolvedConfigContext();
113
+ const config2 = api.useResolvedConfigContext();
109
114
  const ssr = getEntryOptions(
110
115
  entryName,
111
116
  config2.server.ssr,
112
117
  config2.server.ssrByEntries,
113
118
  packageName
114
119
  );
120
+ const useSSG = isSSGEntry(config2, entryName, entrypoints);
115
121
  let mode;
116
122
  if (ssr) {
117
123
  mode = typeof ssr === "object" ? ssr.mode || "string" : "string";
118
- } else {
119
- mode = false;
120
124
  }
121
125
  if (mode === "stream") {
122
126
  const hasPageRoute = routes.some(
@@ -133,13 +137,14 @@ const generateCode = async (appContext, config, entrypoints, api) => {
133
137
  entrypoint,
134
138
  code: await templates.fileSystemRoutes({
135
139
  routes,
136
- ssrMode: mode,
140
+ ssrMode: useSSG ? "string" : mode,
137
141
  nestedRoutesEntry: entrypoint.nestedRoutesEntry,
138
142
  entryName: entrypoint.entryName,
139
- internalDirectory
143
+ internalDirectory,
144
+ splitRoutesChunks: (_a = config2 == null ? void 0 : config2.output) == null ? void 0 : _a.splitRoutesChunks
140
145
  })
141
146
  });
142
- if (entrypoint.nestedRoutesEntry && mode) {
147
+ if (entrypoint.nestedRoutesEntry && isUseSSRBundle(config2)) {
143
148
  const routesServerFile = getServerLoadersFile(
144
149
  internalDirectory,
145
150
  entryName
@@ -70,7 +70,7 @@ const recursiveReadDir = ({
70
70
  }
71
71
  }
72
72
  const route = {
73
- path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
73
+ path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1].replace(/\$$/, "?")}${dynamicRouteMatched[2]}` : filename}`,
74
74
  _component: alias,
75
75
  component: componentName,
76
76
  parent,
@@ -70,7 +70,7 @@ const recursiveReadDirLegacy = ({
70
70
  }
71
71
  }
72
72
  const route = {
73
- path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1]}${dynamicRouteMatched[2]}` : filename}`,
73
+ path: `${basePath}${dynamicRouteMatched ? `:${dynamicRouteMatched[1].replace(/\$$/, "?")}${dynamicRouteMatched[2]}` : filename}`,
74
74
  _component: alias,
75
75
  component: componentName,
76
76
  exact: true,