@modern-js/app-tools 2.0.0-beta.0 → 2.0.0-beta.2

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 (279) hide show
  1. package/CHANGELOG.md +375 -0
  2. package/dist/js/modern/analyze/generateCode.js +30 -38
  3. package/dist/js/modern/analyze/getBundleEntry.js +5 -13
  4. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +5 -30
  5. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +5 -30
  6. package/dist/js/modern/analyze/getClientRoutes/utils.js +0 -3
  7. package/dist/js/modern/analyze/getFileSystemEntry.js +5 -18
  8. package/dist/js/modern/analyze/getHtmlTemplate.js +3 -10
  9. package/dist/js/modern/analyze/getServerRoutes.js +25 -38
  10. package/dist/js/modern/analyze/index.js +90 -48
  11. package/dist/js/modern/analyze/isDefaultExportFunction.js +0 -4
  12. package/dist/js/modern/analyze/makeLegalIdentifier.js +0 -2
  13. package/dist/js/modern/analyze/nestedRoutes.js +8 -33
  14. package/dist/js/modern/analyze/templates.js +22 -37
  15. package/dist/js/modern/analyze/utils.js +0 -7
  16. package/dist/js/modern/builder/builderPlugins/compatModern.js +41 -58
  17. package/dist/js/modern/builder/index.js +56 -37
  18. package/dist/js/modern/builder/share.js +1 -5
  19. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -8
  20. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +2 -13
  21. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +97 -0
  22. package/dist/js/modern/commands/build.js +12 -46
  23. package/dist/js/modern/commands/dev.js +20 -23
  24. package/dist/js/modern/commands/inspect.js +4 -19
  25. package/dist/js/modern/commands/start.js +1 -2
  26. package/dist/js/modern/config/default.js +207 -0
  27. package/dist/js/modern/config/index.js +2 -0
  28. package/dist/js/modern/config/initial/createHtmlConfig.js +32 -0
  29. package/dist/js/modern/{builder → config/initial}/createOutputConfig.js +19 -18
  30. package/dist/js/modern/config/initial/createSourceConfig.js +32 -0
  31. package/dist/js/modern/config/initial/createToolsConfig.js +41 -0
  32. package/dist/js/modern/config/initial/index.js +11 -0
  33. package/dist/js/modern/config/initial/inits.js +117 -0
  34. package/dist/js/modern/config/initial/transformNormalizedConfig.js +40 -0
  35. package/dist/js/modern/defineConfig.js +12 -0
  36. package/dist/js/modern/hooks.js +23 -19
  37. package/dist/js/modern/index.js +12 -19
  38. package/dist/js/modern/initialize/index.js +72 -0
  39. package/dist/js/modern/schema/Schema.js +39 -0
  40. package/dist/js/modern/schema/index.js +139 -0
  41. package/dist/js/modern/schema/legacy.js +284 -0
  42. package/dist/js/modern/types/config/deploy.js +0 -0
  43. package/dist/js/modern/types/config/dev.js +0 -0
  44. package/dist/js/modern/types/config/experiments.js +0 -0
  45. package/dist/js/modern/types/config/html.js +0 -0
  46. package/dist/js/modern/types/config/index.js +2 -0
  47. package/dist/js/modern/types/config/output.js +0 -0
  48. package/dist/js/modern/types/config/performance.js +0 -0
  49. package/dist/js/modern/types/config/security.js +0 -0
  50. package/dist/js/modern/types/config/source.js +0 -0
  51. package/dist/js/modern/types/config/tools.js +0 -0
  52. package/dist/js/modern/types/hooks.js +0 -0
  53. package/dist/js/modern/types/index.js +4 -0
  54. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  55. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  56. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  57. package/dist/js/modern/types/legacyConfig/output.js +1 -0
  58. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  59. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  60. package/dist/js/modern/utils/config.js +2 -13
  61. package/dist/js/modern/utils/createFileWatcher.js +82 -0
  62. package/dist/js/modern/utils/createServer.js +0 -5
  63. package/dist/js/modern/utils/getSpecifiedEntries.js +0 -6
  64. package/dist/js/modern/utils/printInstructions.js +2 -1
  65. package/dist/js/modern/utils/restart.js +17 -0
  66. package/dist/js/modern/utils/routes.js +0 -2
  67. package/dist/js/node/analyze/generateCode.js +30 -61
  68. package/dist/js/node/analyze/getBundleEntry.js +5 -19
  69. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +5 -45
  70. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +5 -45
  71. package/dist/js/node/analyze/getClientRoutes/index.js +0 -2
  72. package/dist/js/node/analyze/getClientRoutes/utils.js +0 -14
  73. package/dist/js/node/analyze/getFileSystemEntry.js +5 -26
  74. package/dist/js/node/analyze/getHtmlTemplate.js +3 -24
  75. package/dist/js/node/analyze/getServerRoutes.js +24 -46
  76. package/dist/js/node/analyze/index.js +91 -70
  77. package/dist/js/node/analyze/isDefaultExportFunction.js +0 -12
  78. package/dist/js/node/analyze/makeLegalIdentifier.js +0 -4
  79. package/dist/js/node/analyze/nestedRoutes.js +8 -41
  80. package/dist/js/node/analyze/templates.js +22 -47
  81. package/dist/js/node/analyze/utils.js +0 -20
  82. package/dist/js/node/builder/builderPlugins/compatModern.js +41 -69
  83. package/dist/js/node/builder/index.js +57 -51
  84. package/dist/js/node/builder/share.js +1 -13
  85. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -10
  86. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +2 -15
  87. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +105 -0
  88. package/dist/js/node/commands/build.js +10 -57
  89. package/dist/js/node/commands/deploy.js +0 -2
  90. package/dist/js/node/commands/dev.js +19 -34
  91. package/dist/js/node/commands/index.js +0 -6
  92. package/dist/js/node/commands/inspect.js +4 -26
  93. package/dist/js/node/commands/start.js +1 -11
  94. package/dist/js/node/config/default.js +214 -0
  95. package/dist/js/node/config/index.js +31 -0
  96. package/dist/js/node/config/initial/createHtmlConfig.js +38 -0
  97. package/dist/js/node/{builder → config/initial}/createOutputConfig.js +19 -20
  98. package/dist/js/node/config/initial/createSourceConfig.js +38 -0
  99. package/dist/js/node/config/initial/createToolsConfig.js +47 -0
  100. package/dist/js/node/config/initial/index.js +24 -0
  101. package/dist/js/node/config/initial/inits.js +127 -0
  102. package/dist/js/node/config/initial/transformNormalizedConfig.js +46 -0
  103. package/dist/js/node/defineConfig.js +20 -0
  104. package/dist/js/node/exports/server.js +0 -1
  105. package/dist/js/node/hooks.js +23 -30
  106. package/dist/js/node/index.js +35 -48
  107. package/dist/js/node/initialize/index.js +79 -0
  108. package/dist/js/node/locale/index.js +0 -4
  109. package/dist/js/node/schema/Schema.js +46 -0
  110. package/dist/js/node/schema/index.js +152 -0
  111. package/dist/js/node/schema/legacy.js +291 -0
  112. package/dist/js/node/types/config/deploy.js +0 -0
  113. package/dist/js/node/types/config/dev.js +0 -0
  114. package/dist/js/node/types/config/experiments.js +0 -0
  115. package/dist/js/node/types/config/html.js +0 -0
  116. package/dist/js/node/types/config/index.js +16 -0
  117. package/dist/js/node/types/config/output.js +0 -0
  118. package/dist/js/node/types/config/performance.js +0 -0
  119. package/dist/js/node/types/config/security.js +0 -0
  120. package/dist/js/node/types/config/source.js +0 -0
  121. package/dist/js/node/types/config/tools.js +0 -0
  122. package/dist/js/node/types/hooks.js +0 -0
  123. package/dist/js/node/types/index.js +38 -0
  124. package/dist/js/node/types/legacyConfig/deploy.js +0 -0
  125. package/dist/js/node/types/legacyConfig/dev.js +0 -0
  126. package/dist/js/node/types/legacyConfig/index.js +0 -0
  127. package/dist/js/node/types/legacyConfig/output.js +5 -0
  128. package/dist/js/node/types/legacyConfig/source.js +0 -0
  129. package/dist/js/node/types/legacyConfig/tools.js +0 -0
  130. package/dist/js/node/utils/commands.js +0 -2
  131. package/dist/js/node/utils/config.js +2 -26
  132. package/dist/js/node/utils/createFileWatcher.js +90 -0
  133. package/dist/js/node/utils/createServer.js +0 -15
  134. package/dist/js/node/utils/getSpecifiedEntries.js +0 -9
  135. package/dist/js/node/utils/language.js +0 -2
  136. package/dist/js/node/utils/printInstructions.js +2 -5
  137. package/dist/js/node/utils/restart.js +23 -0
  138. package/dist/js/node/utils/routes.js +0 -5
  139. package/dist/js/treeshaking/analyze/generateCode.js +58 -101
  140. package/dist/js/treeshaking/analyze/getBundleEntry.js +12 -20
  141. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +16 -42
  142. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +16 -42
  143. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +0 -3
  144. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +5 -18
  145. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +3 -27
  146. package/dist/js/treeshaking/analyze/getServerRoutes.js +29 -41
  147. package/dist/js/treeshaking/analyze/index.js +195 -91
  148. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +0 -4
  149. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +0 -2
  150. package/dist/js/treeshaking/analyze/nestedRoutes.js +9 -51
  151. package/dist/js/treeshaking/analyze/templates.js +31 -50
  152. package/dist/js/treeshaking/analyze/utils.js +7 -14
  153. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +50 -68
  154. package/dist/js/treeshaking/builder/index.js +69 -65
  155. package/dist/js/treeshaking/builder/share.js +1 -5
  156. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +1 -13
  157. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +2 -14
  158. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +121 -0
  159. package/dist/js/treeshaking/commands/build.js +41 -116
  160. package/dist/js/treeshaking/commands/deploy.js +0 -3
  161. package/dist/js/treeshaking/commands/dev.js +38 -46
  162. package/dist/js/treeshaking/commands/inspect.js +9 -27
  163. package/dist/js/treeshaking/commands/start.js +1 -9
  164. package/dist/js/treeshaking/config/default.js +200 -0
  165. package/dist/js/treeshaking/config/index.js +2 -0
  166. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +31 -0
  167. package/dist/js/treeshaking/config/initial/createOutputConfig.js +67 -0
  168. package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -0
  169. package/dist/js/treeshaking/config/initial/createToolsConfig.js +38 -0
  170. package/dist/js/treeshaking/config/initial/index.js +11 -0
  171. package/dist/js/treeshaking/config/initial/inits.js +114 -0
  172. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +38 -0
  173. package/dist/js/treeshaking/defineConfig.js +14 -0
  174. package/dist/js/treeshaking/hooks.js +23 -19
  175. package/dist/js/treeshaking/index.js +8 -43
  176. package/dist/js/treeshaking/initialize/index.js +121 -0
  177. package/dist/js/treeshaking/schema/Schema.js +75 -0
  178. package/dist/js/treeshaking/schema/index.js +138 -0
  179. package/dist/js/treeshaking/schema/legacy.js +273 -0
  180. package/dist/js/treeshaking/types/config/deploy.js +0 -0
  181. package/dist/js/treeshaking/types/config/dev.js +0 -0
  182. package/dist/js/treeshaking/types/config/experiments.js +0 -0
  183. package/dist/js/treeshaking/types/config/html.js +0 -0
  184. package/dist/js/treeshaking/types/config/index.js +2 -0
  185. package/dist/js/treeshaking/types/config/output.js +0 -0
  186. package/dist/js/treeshaking/types/config/performance.js +0 -0
  187. package/dist/js/treeshaking/types/config/security.js +0 -0
  188. package/dist/js/treeshaking/types/config/source.js +0 -0
  189. package/dist/js/treeshaking/types/config/tools.js +0 -0
  190. package/dist/js/treeshaking/types/hooks.js +0 -0
  191. package/dist/js/treeshaking/types/index.js +4 -0
  192. package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -0
  193. package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -0
  194. package/dist/js/treeshaking/types/legacyConfig/index.js +0 -0
  195. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -0
  196. package/dist/js/treeshaking/types/legacyConfig/source.js +0 -0
  197. package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -0
  198. package/dist/js/treeshaking/utils/config.js +2 -18
  199. package/dist/js/treeshaking/utils/createFileWatcher.js +123 -0
  200. package/dist/js/treeshaking/utils/createServer.js +0 -10
  201. package/dist/js/treeshaking/utils/getSpecifiedEntries.js +0 -10
  202. package/dist/js/treeshaking/utils/printInstructions.js +0 -5
  203. package/dist/js/treeshaking/utils/restart.js +45 -0
  204. package/dist/js/treeshaking/utils/routes.js +0 -4
  205. package/dist/types/analyze/generateCode.d.ts +3 -2
  206. package/dist/types/analyze/getBundleEntry.d.ts +2 -2
  207. package/dist/types/analyze/getFileSystemEntry.d.ts +2 -2
  208. package/dist/types/analyze/getHtmlTemplate.d.ts +3 -3
  209. package/dist/types/analyze/getServerRoutes.d.ts +3 -2
  210. package/dist/types/analyze/index.d.ts +3 -42
  211. package/dist/types/analyze/nestedRoutes.d.ts +1 -1
  212. package/dist/types/analyze/templates.d.ts +4 -2
  213. package/dist/types/analyze/utils.d.ts +1 -1
  214. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -3
  215. package/dist/types/builder/index.d.ts +7 -8
  216. package/dist/types/builder/share.d.ts +2 -2
  217. package/dist/types/builder/webpackPlugins/routerPlugin.d.ts +10 -0
  218. package/dist/types/commands/build.d.ts +2 -2
  219. package/dist/types/commands/deploy.d.ts +2 -2
  220. package/dist/types/commands/dev.d.ts +2 -2
  221. package/dist/types/commands/inspect.d.ts +6 -1
  222. package/dist/types/commands/start.d.ts +2 -2
  223. package/dist/types/config/default.d.ts +3 -0
  224. package/dist/types/config/index.d.ts +2 -0
  225. package/dist/types/config/initial/createHtmlConfig.d.ts +2 -0
  226. package/dist/types/config/initial/createOutputConfig.d.ts +2 -0
  227. package/dist/types/config/initial/createSourceConfig.d.ts +2 -0
  228. package/dist/types/config/initial/createToolsConfig.d.ts +2 -0
  229. package/dist/types/config/initial/index.d.ts +4 -0
  230. package/dist/types/config/initial/inits.d.ts +4 -0
  231. package/dist/types/config/initial/transformNormalizedConfig.d.ts +2 -0
  232. package/dist/types/defineConfig.d.ts +7 -0
  233. package/dist/types/hooks.d.ts +2 -42
  234. package/dist/types/index.d.ts +5 -7
  235. package/dist/types/initialize/index.d.ts +3 -0
  236. package/dist/types/schema/Schema.d.ts +14 -0
  237. package/dist/types/schema/index.d.ts +4 -0
  238. package/dist/types/schema/legacy.d.ts +3 -0
  239. package/dist/types/types/config/deploy.d.ts +9 -0
  240. package/dist/types/types/config/dev.d.ts +13 -0
  241. package/dist/types/types/config/experiments.d.ts +4 -0
  242. package/dist/types/types/config/html.d.ts +4 -0
  243. package/dist/types/types/config/index.d.ts +62 -0
  244. package/dist/types/types/config/output.d.ts +23 -0
  245. package/dist/types/types/config/performance.d.ts +4 -0
  246. package/dist/types/types/config/security.d.ts +4 -0
  247. package/dist/types/types/config/source.d.ts +22 -0
  248. package/dist/types/types/config/tools.d.ts +15 -0
  249. package/dist/types/types/hooks.d.ts +80 -0
  250. package/dist/types/types/index.d.ts +23 -0
  251. package/dist/types/types/legacyConfig/deploy.d.ts +8 -0
  252. package/dist/types/types/legacyConfig/dev.d.ts +12 -0
  253. package/dist/types/types/legacyConfig/index.d.ts +33 -0
  254. package/dist/types/types/legacyConfig/output.d.ts +51 -0
  255. package/dist/types/types/legacyConfig/source.d.ts +25 -0
  256. package/dist/types/types/legacyConfig/tools.d.ts +16 -0
  257. package/dist/types/utils/config.d.ts +2 -3
  258. package/dist/types/utils/createFileWatcher.d.ts +3 -0
  259. package/dist/types/utils/printInstructions.d.ts +3 -3
  260. package/dist/types/utils/restart.d.ts +3 -0
  261. package/package.json +26 -25
  262. package/dist/js/modern/builder/createHtmlConfig.js +0 -58
  263. package/dist/js/modern/builder/createSourceConfig.js +0 -85
  264. package/dist/js/modern/builder/createToolsConfig.js +0 -94
  265. package/dist/js/modern/utils/createCompiler.js +0 -58
  266. package/dist/js/node/builder/createHtmlConfig.js +0 -76
  267. package/dist/js/node/builder/createSourceConfig.js +0 -99
  268. package/dist/js/node/builder/createToolsConfig.js +0 -103
  269. package/dist/js/node/utils/createCompiler.js +0 -75
  270. package/dist/js/treeshaking/builder/createHtmlConfig.js +0 -59
  271. package/dist/js/treeshaking/builder/createOutputConfig.js +0 -67
  272. package/dist/js/treeshaking/builder/createSourceConfig.js +0 -100
  273. package/dist/js/treeshaking/builder/createToolsConfig.js +0 -90
  274. package/dist/js/treeshaking/utils/createCompiler.js +0 -117
  275. package/dist/types/builder/createHtmlConfig.d.ts +0 -6
  276. package/dist/types/builder/createOutputConfig.d.ts +0 -3
  277. package/dist/types/builder/createSourceConfig.d.ts +0 -5
  278. package/dist/types/builder/createToolsConfig.d.ts +0 -13
  279. package/dist/types/utils/createCompiler.d.ts +0 -12
package/CHANGELOG.md CHANGED
@@ -1,5 +1,380 @@
1
1
  # @modern-js/app-tools
2
2
 
3
+ ## 2.0.0-beta.2
4
+
5
+ ### Major Changes
6
+
7
+ - dda38c9c3e: chore: v2
8
+
9
+ ### Minor Changes
10
+
11
+ - edd1cfb1af: feat: modernjs Access builder compiler
12
+ feat: modernjs 接入 builder 构建
13
+ - 543be9558e: feat: compile server loader and support handle loader request
14
+ feat: 编译 server loader 并支持处理 loader 的请求
15
+
16
+ ### Patch Changes
17
+
18
+ - c9f912ca4d: feat(app-tools): improve build logs of dev and build command
19
+
20
+ feat(app-tools): 优化 dev 和 build 过程中的日志展示
21
+
22
+ - 103973cde9: fix: builder tools.webpackChain config args not match the Modernjs tools.webpackChain
23
+ fix: builder tools.webpackChain 配置传参无法匹配 Modernjs tools.webpackChain
24
+ - 0b2d1ef02b: fix: repeat register `babel-plugin-lodash`
25
+ fix: 重复注册 `babel-plugin-lodash`
26
+ - 82cef85ed7: fix: specify builder compiler framework
27
+ fix: 指明 builder 构建时框架
28
+ - 3e57f2b: feat: add document feature with plugin
29
+
30
+ feat: 增加 document 功能插件
31
+
32
+ - 85edee888c: feat(app-tools): support tools.htmlPlugin config
33
+
34
+ feat(app-tools): 支持 tools.htmlPlugin 配置项
35
+
36
+ - 5402fdb: feat(Builder): add output.disableTsChecker config
37
+
38
+ feat(Builder): 新增 output.disableTsChecker 配置项
39
+
40
+ - dc8eeb9cbb: fix: clear distDirectory in prepare hook & inject data loader plugin to server
41
+ fix: 在 prepare hook 中清理 dist 目录,并且向 server 中注入 data loader plugin
42
+ - cc971eabfc: refactor: move server plugin load logic in `@modern-js/core`
43
+ refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
44
+ - 5b9049f2e9: feat: inject async js chunk when streaming ssr
45
+ feat: streaming ssr 时, 注入 async 类型的 js chunk
46
+ - d4a4566: chore: rename plugin-jarvis to plugin-lint
47
+
48
+ chore: 重命名 plugin-jarvis 为 plugin-lint
49
+
50
+ - 6bda14ed71: feat: refactor router with react-router@6.4
51
+
52
+ feat: 使用 react-router@6.4 重构路由模块
53
+
54
+ - d36c6ee126: fix(app-tools): failed to run inspect command
55
+
56
+ fix(app-tools): 修复运行 inspect 命令失败的问题
57
+
58
+ - 92004d1: feat: support load chunks parallelly
59
+ feat: 支持并行加载 chunks
60
+ - b8bbe036c7: feat: change type logic
61
+ feat: 修改类型相关的逻辑
62
+ - 40ed587: feat: inject css chunk into html for streaming ssr
63
+ feat: streaming ssr 返回的 html 注入 css chunk
64
+ - af4422d67f: feat(builder): complete utils of tools.webpack
65
+
66
+ feat(builder): 补全 tools.webpack 提供的 utils 方法
67
+
68
+ - 87c1ff8: feat(app-tools): attach builder instance to appContext
69
+
70
+ feat(app-tools): 将 builder 实例挂载到 appContext 上
71
+
72
+ - c258e34202: fix: add builder hooks `beforeBuild` params
73
+ fix: 新增 builder hooks `beforeBuild` 的参数
74
+ - 3b3d709: fix(app-tools): cli --analyze option not work
75
+
76
+ fix(app-tools): 修复 --analyze 命令行参数不生效的问题
77
+
78
+ - 8b8e1bb571: feat: support nested routes
79
+ feat: 支持嵌套路由
80
+ - a2c8cc3: fix: change tools define userconfig type
81
+ fix: 修改工程定义的 UserConfig 类型
82
+ - 7de97ae: fix: `deploy` command has't load `builder` instance
83
+ fix: `deploy` 命令没有加载 builder 实例
84
+ - c3b7de4: fix(app-tools): dev.assetPrefix not work
85
+
86
+ fix(app-tools): 修复 dev.assetPrefix 配置项不生效的问题
87
+
88
+ - 92004d1: fix: use loadable lazy instead of loadable
89
+ fix: 使用 loadable lazy 组件替代 loadable
90
+ - c677befc22: fix(app-tools): compat legacy resolve behavior
91
+
92
+ fix(app-tools): 兼容旧版本 node_modules 解析逻辑
93
+
94
+ - 3f7cde5caa: fix: builder plugin setup can't get config
95
+ fix: builder 插件在 setup 阶段无法拿到 config
96
+ - 99213e4bae: fix: process does't exit when exec command
97
+ fix: 修复执行命令时进程未退出的问题
98
+ - b16fd964da: fix: `modern-js/app-tools` pass error config to builder.
99
+ fix: `modern-js/app-tools` 传递错误的 config 给 builder.
100
+ - 7eefedd7ca: fix: add html-webpack-plugin `__internal__` options, for bottom template
101
+ fix: 为了 bottom template, 增加 `html-webpack-plugin` `__internal__` 配置项,
102
+ - 14b712da84: fix: use consistent alias type and default value across packages
103
+
104
+ fix: 在各个包中使用一致的 alias 类型定义和默认值
105
+
106
+ - Updated dependencies [c9f912ca4d]
107
+ - Updated dependencies [95be7cc49c]
108
+ - Updated dependencies [e439457a51]
109
+ - Updated dependencies [4d1545f8c0]
110
+ - Updated dependencies [2bc090c089]
111
+ - Updated dependencies [f96a725211]
112
+ - Updated dependencies [828f42f9ce]
113
+ - Updated dependencies [060abd4]
114
+ - Updated dependencies [309cd71]
115
+ - Updated dependencies [c7456864a8]
116
+ - Updated dependencies [c9e800d39a]
117
+ - Updated dependencies [0ff846fb56]
118
+ - Updated dependencies [3cf9633]
119
+ - Updated dependencies [57077b2c64]
120
+ - Updated dependencies [d032d49]
121
+ - Updated dependencies [2ff6167]
122
+ - Updated dependencies [287f298990]
123
+ - Updated dependencies [15bf09d9c8]
124
+ - Updated dependencies [423188db70]
125
+ - Updated dependencies [fd2d652c03]
126
+ - Updated dependencies [0c2d8dae31]
127
+ - Updated dependencies [2edad29]
128
+ - Updated dependencies [85edee888c]
129
+ - Updated dependencies [a2509bfbdb]
130
+ - Updated dependencies [3998875791]
131
+ - Updated dependencies [ab3924a]
132
+ - Updated dependencies [3998875791]
133
+ - Updated dependencies [ba86b8b711]
134
+ - Updated dependencies [61f21d1e77]
135
+ - Updated dependencies [5402fdb]
136
+ - Updated dependencies [2ae58176fe]
137
+ - Updated dependencies [92f0ead]
138
+ - Updated dependencies [edd1cfb1af]
139
+ - Updated dependencies [5d67c26cdb]
140
+ - Updated dependencies [cc971eabfc]
141
+ - Updated dependencies [5b9049f2e9]
142
+ - Updated dependencies [d4a4566]
143
+ - Updated dependencies [18360a38d7]
144
+ - Updated dependencies [6bda14ed71]
145
+ - Updated dependencies [0b314e6946]
146
+ - Updated dependencies [92004d1]
147
+ - Updated dependencies [b8bbe036c7]
148
+ - Updated dependencies [5911154]
149
+ - Updated dependencies [40ed587]
150
+ - Updated dependencies [af4422d67f]
151
+ - Updated dependencies [705adc1]
152
+ - Updated dependencies [87c1ff8]
153
+ - Updated dependencies [d5a31df781]
154
+ - Updated dependencies [dda38c9c3e]
155
+ - Updated dependencies [102d32e4ba]
156
+ - Updated dependencies [c258e34202]
157
+ - Updated dependencies [812913c]
158
+ - Updated dependencies [7248342e4d]
159
+ - Updated dependencies [568eab1e42]
160
+ - Updated dependencies [8b8e1bb571]
161
+ - Updated dependencies [3bbea92b2a]
162
+ - Updated dependencies [ae71096d45]
163
+ - Updated dependencies [73cd29dd9f]
164
+ - Updated dependencies [a23010138d]
165
+ - Updated dependencies [75d1b2657c]
166
+ - Updated dependencies [18aaf42]
167
+ - Updated dependencies [f179749]
168
+ - Updated dependencies [3fae2d0]
169
+ - Updated dependencies [8a6d45f105]
170
+ - Updated dependencies [ebbeed1]
171
+ - Updated dependencies [90e2879520]
172
+ - Updated dependencies [df41d71]
173
+ - Updated dependencies [f727e5c6cc]
174
+ - Updated dependencies [5e3cecd523]
175
+ - Updated dependencies [abf3421a75]
176
+ - Updated dependencies [da2d1fc3c2]
177
+ - Updated dependencies [543be9558e]
178
+ - Updated dependencies [14b712da84]
179
+ - @modern-js/builder-webpack-provider@2.0.0-beta.2
180
+ - @modern-js/builder-shared@2.0.0-beta.2
181
+ - @modern-js/core@2.0.0-beta.2
182
+ - @modern-js/prod-server@2.0.0-beta.2
183
+ - @modern-js/builder-plugin-esbuild@2.0.0-beta.2
184
+ - @modern-js/server@2.0.0-beta.2
185
+ - @modern-js/node-bundle-require@2.0.0-beta.2
186
+ - @modern-js/utils@2.0.0-beta.2
187
+ - @modern-js/builder-plugin-node-polyfill@2.0.0-beta.2
188
+ - @modern-js/types@2.0.0-beta.2
189
+ - @modern-js/plugin-lint@2.0.0-beta.2
190
+ - @modern-js/plugin@2.0.0-beta.2
191
+ - @modern-js/builder@2.0.0-beta.2
192
+ - @modern-js/plugin-data-loader@2.0.0-beta.2
193
+ - @modern-js/plugin-i18n@2.0.0-beta.2
194
+ - @modern-js/new-action@2.0.0-beta.2
195
+ - @modern-js/upgrade@2.0.0-beta.2
196
+
197
+ ## 2.0.0-beta.1
198
+
199
+ ### Major Changes
200
+
201
+ - dda38c9: chore: v2
202
+
203
+ ### Minor Changes
204
+
205
+ - edd1cfb1af: feat: modernjs Access builder compiler
206
+ feat: modernjs 接入 builder 构建
207
+ - 543be9558e: feat: compile server loader and support handle loader request
208
+ feat: 编译 server loader 并支持处理 loader 的请求
209
+
210
+ ### Patch Changes
211
+
212
+ - c9f912ca4d: feat(app-tools): improve build logs of dev and build command
213
+
214
+ feat(app-tools): 优化 dev 和 build 过程中的日志展示
215
+
216
+ - 103973cde9: fix: builder tools.webpackChain config args not match the Modernjs tools.webpackChain
217
+ fix: builder tools.webpackChain 配置传参无法匹配 Modernjs tools.webpackChain
218
+ - 0b2d1ef02b: fix: repeat register `babel-plugin-lodash`
219
+ fix: 重复注册 `babel-plugin-lodash`
220
+ - 82cef85ed7: fix: specify builder compiler framework
221
+ fix: 指明 builder 构建时框架
222
+ - 3e57f2b: feat: add document feature with plugin
223
+
224
+ feat: 增加 document 功能插件
225
+
226
+ - 85edee888c: feat(app-tools): support tools.htmlPlugin config
227
+
228
+ feat(app-tools): 支持 tools.htmlPlugin 配置项
229
+
230
+ - 5402fdb: feat(Builder): add output.disableTsChecker config
231
+
232
+ feat(Builder): 新增 output.disableTsChecker 配置项
233
+
234
+ - dc8eeb9cbb: fix: clear distDirectory in prepare hook & inject data loader plugin to server
235
+ fix: 在 prepare hook 中清理 dist 目录,并且向 server 中注入 data loader plugin
236
+ - cc971eabfc: refactor: move server plugin load logic in `@modern-js/core`
237
+ refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
238
+ - 5b9049f: feat: inject async js chunk when streaming ssr
239
+ feat: streaming ssr 时, 注入 async 类型的 js chunk
240
+ - d4a4566: chore: rename plugin-jarvis to plugin-lint
241
+
242
+ chore: 重命名 plugin-jarvis 为 plugin-lint
243
+
244
+ - 6bda14ed71: feat: refactor router with react-router@6.4
245
+
246
+ feat: 使用 react-router@6.4 重构路由模块
247
+
248
+ - d36c6ee126: fix(app-tools): failed to run inspect command
249
+
250
+ fix(app-tools): 修复运行 inspect 命令失败的问题
251
+
252
+ - 92004d1: feat: support load chunks parallelly
253
+ feat: 支持并行加载 chunks
254
+ - b8bbe036c7: feat: change type logic
255
+ feat: 修改类型相关的逻辑
256
+ - 40ed587: feat: inject css chunk into html for streaming ssr
257
+ feat: streaming ssr 返回的 html 注入 css chunk
258
+ - af4422d: feat(builder): complete utils of tools.webpack
259
+
260
+ feat(builder): 补全 tools.webpack 提供的 utils 方法
261
+
262
+ - 87c1ff8: feat(app-tools): attach builder instance to appContext
263
+
264
+ feat(app-tools): 将 builder 实例挂载到 appContext 上
265
+
266
+ - c258e34202: fix: add builder hooks `beforeBuild` params
267
+ fix: 新增 builder hooks `beforeBuild` 的参数
268
+ - 8b8e1bb571: feat: support nested routes
269
+ feat: 支持嵌套路由
270
+ - 7de97ae: fix: `deploy` command has't load `builder` instance
271
+ fix: `deploy` 命令没有加载 builder 实例
272
+ - c3b7de4: fix(app-tools): dev.assetPrefix not work
273
+
274
+ fix(app-tools): 修复 dev.assetPrefix 配置项不生效的问题
275
+
276
+ - 92004d1: fix: use loadable lazy instead of loadable
277
+ fix: 使用 loadable lazy 组件替代 loadable
278
+ - c677befc22: fix(app-tools): compat legacy resolve behavior
279
+
280
+ fix(app-tools): 兼容旧版本 node_modules 解析逻辑
281
+
282
+ - 3f7cde5caa: fix: builder plugin setup can't get config
283
+ fix: builder 插件在 setup 阶段无法拿到 config
284
+ - 99213e4bae: fix: process does't exit when exec command
285
+ fix: 修复执行命令时进程未退出的问题
286
+ - b16fd96: fix: `modern-js/app-tools` pass error config to builder.
287
+ fix: `modern-js/app-tools` 传递错误的 config 给 builder.
288
+ - 7eefedd7ca: fix: add html-webpack-plugin `__internal__` options, for bottom template
289
+ fix: 为了 bottom template, 增加 `html-webpack-plugin` `__internal__` 配置项,
290
+ - 14b712d: fix: use consistent alias type and default value across packages
291
+
292
+ fix: 在各个包中使用一致的 alias 类型定义和默认值
293
+
294
+ - Updated dependencies [c9f912ca4d]
295
+ - Updated dependencies [95be7cc49c]
296
+ - Updated dependencies [e439457a51]
297
+ - Updated dependencies [4d1545f8c0]
298
+ - Updated dependencies [2bc090c089]
299
+ - Updated dependencies [f96a725211]
300
+ - Updated dependencies [828f42f9ce]
301
+ - Updated dependencies [c745686]
302
+ - Updated dependencies [c9e800d39a]
303
+ - Updated dependencies [0ff846f]
304
+ - Updated dependencies [57077b2]
305
+ - Updated dependencies [d032d49]
306
+ - Updated dependencies [2ff6167]
307
+ - Updated dependencies [287f298990]
308
+ - Updated dependencies [15bf09d9c8]
309
+ - Updated dependencies [423188db70]
310
+ - Updated dependencies [fd2d652]
311
+ - Updated dependencies [0c2d8dae31]
312
+ - Updated dependencies [2edad29]
313
+ - Updated dependencies [85edee888c]
314
+ - Updated dependencies [a2509bfbdb]
315
+ - Updated dependencies [3998875791]
316
+ - Updated dependencies [3998875791]
317
+ - Updated dependencies [ba86b8b711]
318
+ - Updated dependencies [61f21d1e77]
319
+ - Updated dependencies [5402fdb]
320
+ - Updated dependencies [2ae58176fe]
321
+ - Updated dependencies [92f0ead]
322
+ - Updated dependencies [edd1cfb1af]
323
+ - Updated dependencies [5d67c26]
324
+ - Updated dependencies [cc971eabfc]
325
+ - Updated dependencies [5b9049f]
326
+ - Updated dependencies [d4a4566]
327
+ - Updated dependencies [18360a38d7]
328
+ - Updated dependencies [6bda14ed71]
329
+ - Updated dependencies [0b314e6946]
330
+ - Updated dependencies [92004d1]
331
+ - Updated dependencies [b8bbe036c7]
332
+ - Updated dependencies [40ed587]
333
+ - Updated dependencies [af4422d]
334
+ - Updated dependencies [87c1ff8]
335
+ - Updated dependencies [d5a31df781]
336
+ - Updated dependencies [dda38c9]
337
+ - Updated dependencies [102d32e4ba]
338
+ - Updated dependencies [c258e34202]
339
+ - Updated dependencies [7248342e4d]
340
+ - Updated dependencies [568eab1e42]
341
+ - Updated dependencies [8b8e1bb571]
342
+ - Updated dependencies [3bbea92b2a]
343
+ - Updated dependencies [ae71096d45]
344
+ - Updated dependencies [73cd29dd9f]
345
+ - Updated dependencies [a23010138d]
346
+ - Updated dependencies [75d1b2657c]
347
+ - Updated dependencies [18aaf42]
348
+ - Updated dependencies [f179749]
349
+ - Updated dependencies [3fae2d0]
350
+ - Updated dependencies [8a6d45f]
351
+ - Updated dependencies [ebbeed1]
352
+ - Updated dependencies [90e2879520]
353
+ - Updated dependencies [df41d71]
354
+ - Updated dependencies [f727e5c6cc]
355
+ - Updated dependencies [5e3cecd523]
356
+ - Updated dependencies [abf3421]
357
+ - Updated dependencies [da2d1fc3c2]
358
+ - Updated dependencies [543be9558e]
359
+ - Updated dependencies [14b712d]
360
+ - @modern-js/builder-webpack-provider@2.0.0-beta.1
361
+ - @modern-js/builder-shared@2.0.0-beta.1
362
+ - @modern-js/core@2.0.0-beta.1
363
+ - @modern-js/prod-server@2.0.0-beta.1
364
+ - @modern-js/builder-plugin-esbuild@2.0.0-beta.1
365
+ - @modern-js/server@2.0.0-beta.1
366
+ - @modern-js/node-bundle-require@2.0.0-beta.1
367
+ - @modern-js/utils@2.0.0-beta.1
368
+ - @modern-js/builder-plugin-node-polyfill@2.0.0-beta.1
369
+ - @modern-js/types@2.0.0-beta.1
370
+ - @modern-js/plugin-lint@2.0.0-beta.1
371
+ - @modern-js/plugin@2.0.0-beta.1
372
+ - @modern-js/builder@2.0.0-beta.1
373
+ - @modern-js/plugin-data-loader@2.0.0-beta.1
374
+ - @modern-js/plugin-i18n@2.0.0-beta.1
375
+ - @modern-js/new-action@2.0.0-beta.1
376
+ - @modern-js/upgrade@2.0.0-beta.1
377
+
3
378
  ## 2.0.0-beta.0
4
379
 
5
380
  ### Major Changes
@@ -8,11 +8,9 @@ import { getClientRoutes, getClientRoutesLegacy } from "./getClientRoutes";
8
8
  import { FILE_SYSTEM_ROUTES_FILE_NAME, ENTRY_POINT_FILE_NAME, ENTRY_BOOTSTRAP_FILE_NAME } from "./constants";
9
9
  import { getDefaultImports } from "./utils";
10
10
  import { walk } from "./nestedRoutes";
11
-
12
11
  const createImportSpecifier = specifiers => {
13
12
  let defaults = '';
14
13
  const named = [];
15
-
16
14
  for (const {
17
15
  local,
18
16
  imported
@@ -25,7 +23,6 @@ const createImportSpecifier = specifiers => {
25
23
  named.push(imported);
26
24
  }
27
25
  }
28
-
29
26
  if (defaults && named.length) {
30
27
  return `${defaults}, { ${named.join(', ')} }`;
31
28
  } else if (defaults) {
@@ -34,12 +31,10 @@ const createImportSpecifier = specifiers => {
34
31
  return `{ ${named.join(', ')} }`;
35
32
  }
36
33
  };
37
-
38
34
  export const createImportStatements = statements => {
39
35
  // merge import statements with the same value.
40
36
  const deDuplicated = [];
41
37
  const seen = new Map();
42
-
43
38
  for (const {
44
39
  value,
45
40
  specifiers,
@@ -54,22 +49,19 @@ export const createImportStatements = statements => {
54
49
  seen.set(value, specifiers);
55
50
  } else {
56
51
  var _deDuplicated$modifyI, _deDuplicated$modifyI2;
57
-
58
- seen.get(value).push(...specifiers); // make "initialize" param can be connected when multiple plugins were imported from same package
59
-
52
+ seen.get(value).push(...specifiers);
53
+ // make "initialize" param can be connected when multiple plugins were imported from same package
60
54
  const modifyIndex = deDuplicated.findIndex(v => v.value === value);
61
55
  const originInitialize = (_deDuplicated$modifyI = (_deDuplicated$modifyI2 = deDuplicated[modifyIndex]) === null || _deDuplicated$modifyI2 === void 0 ? void 0 : _deDuplicated$modifyI2.initialize) !== null && _deDuplicated$modifyI !== void 0 ? _deDuplicated$modifyI : '';
62
56
  deDuplicated[modifyIndex].initialize = originInitialize.concat(`\n${initialize || ''}`);
63
57
  }
64
58
  }
65
-
66
59
  return deDuplicated.map(({
67
60
  value,
68
61
  specifiers,
69
62
  initialize
70
63
  }) => `import ${createImportSpecifier(specifiers)} from '${value}';\n${initialize || ''}`).join('\n');
71
64
  };
72
-
73
65
  const buildLoader = async (entry, outfile) => {
74
66
  const loader = {
75
67
  '.js': 'jsx',
@@ -89,32 +81,27 @@ const buildLoader = async (entry, outfile) => {
89
81
  outfile,
90
82
  plugins: [{
91
83
  name: 'make-all-packages-external',
92
-
93
84
  setup(build) {
94
85
  // https://github.com/evanw/esbuild/issues/619#issuecomment-751995294
95
86
  build.onResolve({
96
87
  filter: EXTERNAL_REGEXP
97
88
  }, args => {
98
- let external = true; // FIXME: windows external entrypoint
99
-
89
+ let external = true;
90
+ // FIXME: windows external entrypoint
100
91
  if (args.kind === 'entry-point') {
101
92
  external = false;
102
93
  }
103
-
104
94
  return {
105
95
  path: args.path,
106
96
  external
107
97
  };
108
98
  });
109
99
  }
110
-
111
100
  }]
112
101
  });
113
102
  };
114
-
115
103
  export const generateCode = async (appContext, config, entrypoints, api) => {
116
104
  var _config$runtime, _config$runtime$route;
117
-
118
105
  const {
119
106
  internalDirectory,
120
107
  distDirectory,
@@ -126,10 +113,9 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
126
113
  const islegacy = Boolean(config === null || config === void 0 ? void 0 : (_config$runtime = config.runtime) === null || _config$runtime === void 0 ? void 0 : (_config$runtime$route = _config$runtime.router) === null || _config$runtime$route === void 0 ? void 0 : _config$runtime$route.legacy);
127
114
  const {
128
115
  mountId
129
- } = config.output;
116
+ } = config.html;
130
117
  const getRoutes = islegacy ? getClientRoutesLegacy : getClientRoutes;
131
118
  await Promise.all(entrypoints.map(generateEntryCode));
132
-
133
119
  async function generateEntryCode(entrypoint) {
134
120
  const {
135
121
  entryName,
@@ -137,13 +123,11 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
137
123
  customBootstrap,
138
124
  fileSystemRoutes
139
125
  } = entrypoint;
140
-
141
126
  if (isAutoMount) {
142
127
  // generate routes file for file system routes entrypoint.
143
128
  if (fileSystemRoutes) {
144
129
  let initialRoutes = [];
145
130
  let nestedRoute = null;
146
-
147
131
  if (entrypoint.entry) {
148
132
  initialRoutes = getRoutes({
149
133
  entrypoint,
@@ -153,24 +137,21 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
153
137
  internalDirAlias
154
138
  });
155
139
  }
156
-
157
140
  if (entrypoint.nestedRoutesEntry) {
158
141
  if (!islegacy) {
159
142
  nestedRoute = await walk(entrypoint.nestedRoutesEntry, entrypoint.nestedRoutesEntry, {
160
143
  name: internalSrcAlias,
161
144
  basename: srcDirectory
162
- });
163
-
145
+ }, entrypoint.entryName);
164
146
  if (nestedRoute) {
165
147
  initialRoutes.unshift(nestedRoute);
166
148
  }
167
149
  } else {
168
- logger.error('Nested routes is not supported in legacy mode.'); // eslint-disable-next-line no-process-exit
169
-
150
+ logger.error('Nested routes is not supported in legacy mode.');
151
+ // eslint-disable-next-line no-process-exit
170
152
  process.exit(1);
171
153
  }
172
154
  }
173
-
174
155
  const {
175
156
  routes
176
157
  } = await hookRunners.modifyFileSystemRoutes({
@@ -180,13 +161,19 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
180
161
  const config = useResolvedConfigContext();
181
162
  const ssr = config === null || config === void 0 ? void 0 : config.server.ssr;
182
163
  let mode;
183
-
184
164
  if (ssr) {
185
165
  mode = typeof ssr === 'object' ? ssr.mode || 'string' : 'string';
186
166
  } else {
187
167
  mode = false;
188
168
  }
189
-
169
+ if (mode === 'stream') {
170
+ const hasPageRoute = routes.some(route => 'type' in route && route.type === 'page');
171
+ if (hasPageRoute) {
172
+ logger.error('streaming ssr is not supported when pages dir exists');
173
+ // eslint-disable-next-line no-process-exit
174
+ process.exit(1);
175
+ }
176
+ }
190
177
  const {
191
178
  code
192
179
  } = await hookRunners.beforeGenerateRoutes({
@@ -194,10 +181,12 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
194
181
  code: templates.fileSystemRoutes({
195
182
  routes,
196
183
  ssrMode: mode,
197
- nestedRoutesEntry: entrypoint.nestedRoutesEntry
184
+ nestedRoutesEntry: entrypoint.nestedRoutesEntry,
185
+ entryName: entrypoint.entryName
198
186
  })
199
- }); // extract nested router loaders
187
+ });
200
188
 
189
+ // extract nested router loaders
201
190
  if (entrypoint.nestedRoutesEntry) {
202
191
  const routesServerFile = path.join(internalDirectory, entryName, 'routes.server.js');
203
192
  const outputRoutesServerFile = path.join(distDirectory, 'loader-routes', entryName, 'index.js');
@@ -212,11 +201,10 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
212
201
  await fs.writeFile(routesServerFile, code);
213
202
  await buildLoader(routesServerFile, outputRoutesServerFile);
214
203
  }
215
-
216
204
  fs.outputFileSync(path.resolve(internalDirectory, `./${entryName}/${FILE_SYSTEM_ROUTES_FILE_NAME}`), code, 'utf8');
217
- } // call modifyEntryImports hook
218
-
205
+ }
219
206
 
207
+ // call modifyEntryImports hook
220
208
  const {
221
209
  imports: importStatements
222
210
  } = await hookRunners.modifyEntryImports({
@@ -228,15 +216,17 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
228
216
  internalDirAlias,
229
217
  internalDirectory
230
218
  })
231
- }); // call modifyEntryRuntimePlugins hook
219
+ });
232
220
 
221
+ // call modifyEntryRuntimePlugins hook
233
222
  const {
234
223
  plugins
235
224
  } = await hookRunners.modifyEntryRuntimePlugins({
236
225
  entrypoint,
237
226
  plugins: []
238
- }); // call modifyEntryRenderFunction hook
227
+ });
239
228
 
229
+ // call modifyEntryRenderFunction hook
240
230
  const {
241
231
  code: renderFunction
242
232
  } = await hookRunners.modifyEntryRenderFunction({
@@ -246,8 +236,9 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
246
236
  customBootstrap,
247
237
  fileSystemRoutes
248
238
  })
249
- }); // call modifyEntryExport hook
239
+ });
250
240
 
241
+ // call modifyEntryExport hook
251
242
  const {
252
243
  exportStatement
253
244
  } = await hookRunners.modifyEntryExport({
@@ -261,8 +252,9 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
261
252
  exportStatement
262
253
  });
263
254
  const entryFile = path.resolve(internalDirectory, `./${entryName}/${ENTRY_POINT_FILE_NAME}`);
264
- entrypoint.entry = entryFile; // generate entry file.
255
+ entrypoint.entry = entryFile;
265
256
 
257
+ // generate entry file.
266
258
  if (config.source.enableAsyncEntry) {
267
259
  const {
268
260
  code: asyncEntryCode
@@ -2,30 +2,24 @@ import path from 'path';
2
2
  import { ensureAbsolutePath, fs, findExists, MAIN_ENTRY_NAME } from '@modern-js/utils';
3
3
  import { getFileSystemEntry } from "./getFileSystemEntry";
4
4
  import { JS_EXTENSIONS } from "./constants";
5
-
6
5
  const ensureExtensions = file => {
7
6
  if (!path.extname(file)) {
8
7
  return findExists(JS_EXTENSIONS.map(ext => `${file}${ext}`)) || file;
9
8
  }
10
-
11
9
  return file;
12
10
  };
13
-
14
11
  const ifAlreadyExists = (entrypoints, checked) => entrypoints.some(entrypoint => {
15
12
  if (ensureExtensions(entrypoint.entry) === ensureExtensions(checked.entry)) {
16
13
  // reset entryName
17
14
  checked.entryName = entrypoint.entryName;
18
15
  return true;
19
- } // filesystem routes entrypoint conflict with normal entrypoint.
20
-
21
-
16
+ }
17
+ // filesystem routes entrypoint conflict with normal entrypoint.
22
18
  if (entrypoint.entry.startsWith(checked.entry) || checked.entry.startsWith(entrypoint.entry)) {
23
19
  throw new Error(`Entry configuration conflicts\n Your configuration: ${checked.entry}.\n Default entrypoint: ${entrypoint.entry}\n Please reset source.entries or set source.disableDefaultEntries to disable the default entry rules.`);
24
20
  }
25
-
26
21
  return false;
27
22
  });
28
-
29
23
  export const getBundleEntry = (appContext, config) => {
30
24
  const {
31
25
  appDirectory,
@@ -38,8 +32,9 @@ export const getBundleEntry = (appContext, config) => {
38
32
  entriesDir
39
33
  }
40
34
  } = config;
41
- const defaults = disableDefaultEntries ? [] : getFileSystemEntry(appContext, config); // merge entrypoints from user config with directory convention.
35
+ const defaults = disableDefaultEntries ? [] : getFileSystemEntry(appContext, config);
42
36
 
37
+ // merge entrypoints from user config with directory convention.
43
38
  if (entries) {
44
39
  Object.keys(entries).forEach(name => {
45
40
  const value = entries[name];
@@ -54,16 +49,14 @@ export const getBundleEntry = (appContext, config) => {
54
49
  isAutoMount: !value.disableMount,
55
50
  fileSystemRoutes: value.enableFileSystemRoutes ? {} : undefined
56
51
  };
57
-
58
52
  if (!ifAlreadyExists(defaults, entrypoint)) {
59
53
  defaults.push(entrypoint);
60
54
  }
61
55
  });
62
56
  }
63
-
64
57
  if (!disableDefaultEntries) {
65
58
  // find main entry point which server route is '/'.
66
- const entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir);
59
+ const entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir || '');
67
60
  const found = defaults.find(({
68
61
  entryName,
69
62
  entry,
@@ -71,6 +64,5 @@ export const getBundleEntry = (appContext, config) => {
71
64
  }) => entryName === packageName || path.dirname(entry) === entriesDirAbs || path.dirname(_nestedRoutesEntry) === entriesDirAbs);
72
65
  found && (found.entryName = MAIN_ENTRY_NAME);
73
66
  }
74
-
75
67
  return defaults;
76
68
  };