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

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 (240) hide show
  1. package/CHANGELOG.md +445 -0
  2. package/bin/modern.js +10 -1
  3. package/dist/js/modern/analyze/constants.js +2 -0
  4. package/dist/js/modern/analyze/generateCode.js +39 -19
  5. package/dist/js/modern/analyze/getBundleEntry.js +1 -1
  6. package/dist/js/modern/analyze/getFileSystemEntry.js +1 -1
  7. package/dist/js/modern/analyze/getHtmlTemplate.js +1 -1
  8. package/dist/js/modern/analyze/getServerRoutes.js +8 -4
  9. package/dist/js/modern/analyze/index.js +12 -27
  10. package/dist/js/modern/analyze/nestedRoutes.js +17 -6
  11. package/dist/js/modern/analyze/templates.js +59 -27
  12. package/dist/js/modern/analyze/utils.js +30 -4
  13. package/dist/js/modern/builder/builderPlugins/compatModern.js +18 -12
  14. package/dist/js/modern/builder/index.js +31 -16
  15. package/dist/js/modern/builder/loaders/routerLoader.js +20 -0
  16. package/dist/js/modern/builder/loaders/serverModuleLoader.js +4 -0
  17. package/dist/js/modern/builder/share.js +1 -1
  18. package/dist/js/modern/commands/build.js +8 -2
  19. package/dist/js/modern/commands/dev.js +37 -32
  20. package/dist/js/modern/commands/inspect.js +4 -2
  21. package/dist/js/modern/config/default.js +206 -0
  22. package/dist/js/modern/config/index.js +2 -0
  23. package/dist/js/modern/config/initial/createHtmlConfig.js +32 -0
  24. package/dist/js/modern/{builder → config/initial}/createOutputConfig.js +16 -15
  25. package/dist/js/modern/config/initial/createSourceConfig.js +32 -0
  26. package/dist/js/modern/config/initial/createToolsConfig.js +41 -0
  27. package/dist/js/modern/config/initial/index.js +11 -0
  28. package/dist/js/modern/config/initial/inits.js +117 -0
  29. package/dist/js/modern/config/initial/transformNormalizedConfig.js +40 -0
  30. package/dist/js/modern/defineConfig.js +12 -0
  31. package/dist/js/modern/hooks.js +23 -19
  32. package/dist/js/modern/index.js +7 -5
  33. package/dist/js/modern/initialize/index.js +72 -0
  34. package/dist/js/modern/schema/Schema.js +39 -0
  35. package/dist/js/modern/schema/index.js +139 -0
  36. package/dist/js/modern/schema/legacy.js +284 -0
  37. package/dist/js/modern/types/config/deploy.js +0 -0
  38. package/dist/js/modern/types/config/dev.js +0 -0
  39. package/dist/js/modern/types/config/experiments.js +0 -0
  40. package/dist/js/modern/types/config/html.js +0 -0
  41. package/dist/js/modern/types/config/index.js +2 -0
  42. package/dist/js/modern/types/config/output.js +0 -0
  43. package/dist/js/modern/types/config/performance.js +0 -0
  44. package/dist/js/modern/types/config/security.js +0 -0
  45. package/dist/js/modern/types/config/source.js +0 -0
  46. package/dist/js/modern/types/config/tools.js +0 -0
  47. package/dist/js/modern/types/hooks.js +0 -0
  48. package/dist/js/modern/types/index.js +4 -0
  49. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  50. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  51. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  52. package/dist/js/modern/types/legacyConfig/output.js +1 -0
  53. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  54. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  55. package/dist/js/modern/utils/config.js +1 -1
  56. package/dist/js/modern/utils/createFileWatcher.js +82 -0
  57. package/dist/js/modern/utils/restart.js +17 -0
  58. package/dist/js/node/analyze/constants.js +5 -1
  59. package/dist/js/node/analyze/generateCode.js +37 -17
  60. package/dist/js/node/analyze/getBundleEntry.js +1 -1
  61. package/dist/js/node/analyze/getFileSystemEntry.js +1 -1
  62. package/dist/js/node/analyze/getHtmlTemplate.js +1 -1
  63. package/dist/js/node/analyze/getServerRoutes.js +8 -4
  64. package/dist/js/node/analyze/index.js +13 -39
  65. package/dist/js/node/analyze/nestedRoutes.js +15 -4
  66. package/dist/js/node/analyze/templates.js +60 -27
  67. package/dist/js/node/analyze/utils.js +31 -3
  68. package/dist/js/node/builder/builderPlugins/compatModern.js +18 -12
  69. package/dist/js/node/builder/index.js +32 -16
  70. package/dist/js/node/builder/loaders/routerLoader.js +27 -0
  71. package/dist/js/node/builder/loaders/serverModuleLoader.js +11 -0
  72. package/dist/js/node/builder/share.js +1 -1
  73. package/dist/js/node/commands/build.js +8 -2
  74. package/dist/js/node/commands/dev.js +37 -32
  75. package/dist/js/node/commands/inspect.js +4 -2
  76. package/dist/js/node/config/default.js +213 -0
  77. package/dist/js/node/config/index.js +31 -0
  78. package/dist/js/node/config/initial/createHtmlConfig.js +38 -0
  79. package/dist/js/node/{builder → config/initial}/createOutputConfig.js +16 -15
  80. package/dist/js/node/config/initial/createSourceConfig.js +38 -0
  81. package/dist/js/node/config/initial/createToolsConfig.js +47 -0
  82. package/dist/js/node/config/initial/index.js +24 -0
  83. package/dist/js/node/config/initial/inits.js +127 -0
  84. package/dist/js/node/config/initial/transformNormalizedConfig.js +46 -0
  85. package/dist/js/node/defineConfig.js +20 -0
  86. package/dist/js/node/hooks.js +23 -28
  87. package/dist/js/node/index.js +30 -16
  88. package/dist/js/node/initialize/index.js +79 -0
  89. package/dist/js/node/schema/Schema.js +46 -0
  90. package/dist/js/node/schema/index.js +152 -0
  91. package/dist/js/node/schema/legacy.js +291 -0
  92. package/dist/js/node/types/config/deploy.js +0 -0
  93. package/dist/js/node/types/config/dev.js +0 -0
  94. package/dist/js/node/types/config/experiments.js +0 -0
  95. package/dist/js/node/types/config/html.js +0 -0
  96. package/dist/js/node/types/config/index.js +16 -0
  97. package/dist/js/node/types/config/output.js +0 -0
  98. package/dist/js/node/types/config/performance.js +0 -0
  99. package/dist/js/node/types/config/security.js +0 -0
  100. package/dist/js/node/types/config/source.js +0 -0
  101. package/dist/js/node/types/config/tools.js +0 -0
  102. package/dist/js/node/types/hooks.js +0 -0
  103. package/dist/js/node/types/index.js +38 -0
  104. package/dist/js/node/types/legacyConfig/deploy.js +0 -0
  105. package/dist/js/node/types/legacyConfig/dev.js +0 -0
  106. package/dist/js/node/types/legacyConfig/index.js +0 -0
  107. package/dist/js/node/types/legacyConfig/output.js +5 -0
  108. package/dist/js/node/types/legacyConfig/source.js +0 -0
  109. package/dist/js/node/types/legacyConfig/tools.js +0 -0
  110. package/dist/js/node/utils/config.js +1 -1
  111. package/dist/js/node/utils/createFileWatcher.js +91 -0
  112. package/dist/js/node/utils/restart.js +23 -0
  113. package/dist/js/treeshaking/analyze/constants.js +2 -0
  114. package/dist/js/treeshaking/analyze/generateCode.js +138 -82
  115. package/dist/js/treeshaking/analyze/getBundleEntry.js +1 -1
  116. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +1 -1
  117. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +1 -1
  118. package/dist/js/treeshaking/analyze/getServerRoutes.js +7 -5
  119. package/dist/js/treeshaking/analyze/index.js +10 -26
  120. package/dist/js/treeshaking/analyze/nestedRoutes.js +98 -55
  121. package/dist/js/treeshaking/analyze/templates.js +175 -101
  122. package/dist/js/treeshaking/analyze/utils.js +80 -4
  123. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +18 -12
  124. package/dist/js/treeshaking/builder/index.js +29 -16
  125. package/dist/js/treeshaking/builder/loaders/routerLoader.js +14 -0
  126. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +4 -0
  127. package/dist/js/treeshaking/builder/share.js +1 -1
  128. package/dist/js/treeshaking/commands/build.js +33 -23
  129. package/dist/js/treeshaking/commands/dev.js +56 -43
  130. package/dist/js/treeshaking/commands/inspect.js +8 -3
  131. package/dist/js/treeshaking/config/default.js +199 -0
  132. package/dist/js/treeshaking/config/index.js +2 -0
  133. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +31 -0
  134. package/dist/js/treeshaking/config/initial/createOutputConfig.js +70 -0
  135. package/dist/js/treeshaking/config/initial/createSourceConfig.js +41 -0
  136. package/dist/js/treeshaking/config/initial/createToolsConfig.js +38 -0
  137. package/dist/js/treeshaking/config/initial/index.js +11 -0
  138. package/dist/js/treeshaking/config/initial/inits.js +114 -0
  139. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +38 -0
  140. package/dist/js/treeshaking/defineConfig.js +14 -0
  141. package/dist/js/treeshaking/hooks.js +23 -19
  142. package/dist/js/treeshaking/index.js +7 -5
  143. package/dist/js/treeshaking/initialize/index.js +121 -0
  144. package/dist/js/treeshaking/schema/Schema.js +75 -0
  145. package/dist/js/treeshaking/schema/index.js +138 -0
  146. package/dist/js/treeshaking/schema/legacy.js +273 -0
  147. package/dist/js/treeshaking/types/config/deploy.js +0 -0
  148. package/dist/js/treeshaking/types/config/dev.js +0 -0
  149. package/dist/js/treeshaking/types/config/experiments.js +0 -0
  150. package/dist/js/treeshaking/types/config/html.js +0 -0
  151. package/dist/js/treeshaking/types/config/index.js +2 -0
  152. package/dist/js/treeshaking/types/config/output.js +0 -0
  153. package/dist/js/treeshaking/types/config/performance.js +0 -0
  154. package/dist/js/treeshaking/types/config/security.js +0 -0
  155. package/dist/js/treeshaking/types/config/source.js +0 -0
  156. package/dist/js/treeshaking/types/config/tools.js +0 -0
  157. package/dist/js/treeshaking/types/hooks.js +0 -0
  158. package/dist/js/treeshaking/types/index.js +4 -0
  159. package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -0
  160. package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -0
  161. package/dist/js/treeshaking/types/legacyConfig/index.js +0 -0
  162. package/dist/js/treeshaking/types/legacyConfig/output.js +1 -0
  163. package/dist/js/treeshaking/types/legacyConfig/source.js +0 -0
  164. package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -0
  165. package/dist/js/treeshaking/utils/config.js +1 -1
  166. package/dist/js/treeshaking/utils/createFileWatcher.js +123 -0
  167. package/dist/js/treeshaking/utils/restart.js +45 -0
  168. package/dist/types/analyze/constants.d.ts +2 -0
  169. package/dist/types/analyze/generateCode.d.ts +3 -2
  170. package/dist/types/analyze/getBundleEntry.d.ts +2 -2
  171. package/dist/types/analyze/getFileSystemEntry.d.ts +2 -2
  172. package/dist/types/analyze/getHtmlTemplate.d.ts +3 -3
  173. package/dist/types/analyze/getServerRoutes.d.ts +3 -2
  174. package/dist/types/analyze/index.d.ts +3 -41
  175. package/dist/types/analyze/templates.d.ts +9 -8
  176. package/dist/types/analyze/utils.d.ts +10 -2
  177. package/dist/types/builder/builderPlugins/compatModern.d.ts +2 -2
  178. package/dist/types/builder/index.d.ts +5 -2
  179. package/dist/types/builder/loaders/routerLoader.d.ts +3 -0
  180. package/dist/types/builder/loaders/serverModuleLoader.d.ts +3 -0
  181. package/dist/types/builder/share.d.ts +2 -2
  182. package/dist/types/commands/build.d.ts +2 -2
  183. package/dist/types/commands/deploy.d.ts +2 -2
  184. package/dist/types/commands/dev.d.ts +2 -2
  185. package/dist/types/commands/inspect.d.ts +9 -1
  186. package/dist/types/commands/start.d.ts +2 -2
  187. package/dist/types/config/default.d.ts +3 -0
  188. package/dist/types/config/index.d.ts +2 -0
  189. package/dist/types/config/initial/createHtmlConfig.d.ts +2 -0
  190. package/dist/types/config/initial/createOutputConfig.d.ts +2 -0
  191. package/dist/types/config/initial/createSourceConfig.d.ts +2 -0
  192. package/dist/types/config/initial/createToolsConfig.d.ts +2 -0
  193. package/dist/types/config/initial/index.d.ts +4 -0
  194. package/dist/types/config/initial/inits.d.ts +4 -0
  195. package/dist/types/config/initial/transformNormalizedConfig.d.ts +2 -0
  196. package/dist/types/defineConfig.d.ts +7 -0
  197. package/dist/types/hooks.d.ts +2 -42
  198. package/dist/types/index.d.ts +5 -5
  199. package/dist/types/initialize/index.d.ts +3 -0
  200. package/dist/types/schema/Schema.d.ts +14 -0
  201. package/dist/types/schema/index.d.ts +4 -0
  202. package/dist/types/schema/legacy.d.ts +3 -0
  203. package/dist/types/types/config/deploy.d.ts +9 -0
  204. package/dist/types/types/config/dev.d.ts +13 -0
  205. package/dist/types/types/config/experiments.d.ts +4 -0
  206. package/dist/types/types/config/html.d.ts +4 -0
  207. package/dist/types/types/config/index.d.ts +62 -0
  208. package/dist/types/types/config/output.d.ts +23 -0
  209. package/dist/types/types/config/performance.d.ts +4 -0
  210. package/dist/types/types/config/security.d.ts +4 -0
  211. package/dist/types/types/config/source.d.ts +22 -0
  212. package/dist/types/types/config/tools.d.ts +22 -0
  213. package/dist/types/types/hooks.d.ts +81 -0
  214. package/dist/types/types/index.d.ts +23 -0
  215. package/dist/types/types/legacyConfig/deploy.d.ts +8 -0
  216. package/dist/types/types/legacyConfig/dev.d.ts +12 -0
  217. package/dist/types/types/legacyConfig/index.d.ts +33 -0
  218. package/dist/types/types/legacyConfig/output.d.ts +51 -0
  219. package/dist/types/types/legacyConfig/source.d.ts +25 -0
  220. package/dist/types/types/legacyConfig/tools.d.ts +16 -0
  221. package/dist/types/utils/config.d.ts +2 -2
  222. package/dist/types/utils/createFileWatcher.d.ts +4 -0
  223. package/dist/types/utils/printInstructions.d.ts +3 -3
  224. package/dist/types/utils/restart.d.ts +3 -0
  225. package/lib/types.d.ts +1 -1
  226. package/package.json +28 -25
  227. package/dist/js/modern/builder/createHtmlConfig.js +0 -58
  228. package/dist/js/modern/builder/createSourceConfig.js +0 -74
  229. package/dist/js/modern/builder/createToolsConfig.js +0 -87
  230. package/dist/js/node/builder/createHtmlConfig.js +0 -68
  231. package/dist/js/node/builder/createSourceConfig.js +0 -82
  232. package/dist/js/node/builder/createToolsConfig.js +0 -94
  233. package/dist/js/treeshaking/builder/createHtmlConfig.js +0 -59
  234. package/dist/js/treeshaking/builder/createOutputConfig.js +0 -70
  235. package/dist/js/treeshaking/builder/createSourceConfig.js +0 -88
  236. package/dist/js/treeshaking/builder/createToolsConfig.js +0 -85
  237. package/dist/types/builder/createHtmlConfig.d.ts +0 -6
  238. package/dist/types/builder/createOutputConfig.d.ts +0 -3
  239. package/dist/types/builder/createSourceConfig.d.ts +0 -5
  240. package/dist/types/builder/createToolsConfig.d.ts +0 -13
package/CHANGELOG.md CHANGED
@@ -1,5 +1,450 @@
1
1
  # @modern-js/app-tools
2
2
 
3
+ ## 2.0.0-beta.3
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
+ - b710adb: feat: extract the data loader
14
+ feat: 提取 data loader
15
+ - bbe4c4a: feat: add @modern-js/plugin-swc
16
+
17
+ feat: 新增 @modern-js/plugin-swc 插件
18
+
19
+ - e4558a0: feat:
20
+
21
+ 1. add `runBin` function
22
+ 2. config internal plugins constants in the app/module/doc tools
23
+ 3. add app/module/doc tools internal plugins
24
+
25
+ feat:
26
+
27
+ 1. 添加 `runBin` 函数
28
+ 2. 在 app/module/doc tools 里配置内部插件
29
+ 3. 增加 app/module/doc tools 使用的插件常量
30
+
31
+ - 543be9558e: feat: compile server loader and support handle loader request
32
+ feat: 编译 server loader 并支持处理 loader 的请求
33
+
34
+ ### Patch Changes
35
+
36
+ - c9f912ca4d: feat(app-tools): improve build logs of dev and build command
37
+
38
+ feat(app-tools): 优化 dev 和 build 过程中的日志展示
39
+
40
+ - 0078da4: fix: remove webpack oneof rule in new config, save in legacy mode.
41
+ fix: 在新模式下删除 webpack oneof 规则,兼容模式下保留
42
+ - 103973cde9: fix: builder tools.webpackChain config args not match the Modernjs tools.webpackChain
43
+ fix: builder tools.webpackChain 配置传参无法匹配 Modernjs tools.webpackChain
44
+ - d4e8e6f: fix: modernjs dev server can't start normaly
45
+ fix: modernjs dev 服务端不能正常启动
46
+ - 0b2d1ef02b: fix: repeat register `babel-plugin-lodash`
47
+ fix: 重复注册 `babel-plugin-lodash`
48
+ - 82cef85ed7: fix: specify builder compiler framework
49
+ fix: 指明 builder 构建时框架
50
+ - 3e57f2bd58: feat: add document feature with plugin
51
+
52
+ feat: 增加 document 功能插件
53
+
54
+ - 85edee888c: feat(app-tools): support tools.htmlPlugin config
55
+
56
+ feat(app-tools): 支持 tools.htmlPlugin 配置项
57
+
58
+ - 2e60319: fix: some optimizations for router and loader
59
+ fix: 一些 router 和 loader 的优化
60
+ q
61
+ - a55b965: fix: rename "loader routes" file to avoid influence ssr
62
+ fix: 重命名 loader routes 避免影响 ssr
63
+ - 5402fdb0ca: feat(Builder): add output.disableTsChecker config
64
+
65
+ feat(Builder): 新增 output.disableTsChecker 配置项
66
+
67
+ - dc8eeb9cbb: fix: clear distDirectory in prepare hook & inject data loader plugin to server
68
+ fix: 在 prepare hook 中清理 dist 目录,并且向 server 中注入 data loader plugin
69
+ - cc971eabfc: refactor: move server plugin load logic in `@modern-js/core`
70
+ refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
71
+ - 5b9049f2e9: feat: inject async js chunk when streaming ssr
72
+ feat: streaming ssr 时, 注入 async 类型的 js chunk
73
+ - d4a456659b: chore: rename plugin-jarvis to plugin-lint
74
+
75
+ chore: 重命名 plugin-jarvis 为 plugin-lint
76
+
77
+ - 6bda14ed71: feat: refactor router with react-router@6.4
78
+
79
+ feat: 使用 react-router@6.4 重构路由模块
80
+
81
+ - d36c6ee126: fix(app-tools): failed to run inspect command
82
+
83
+ fix(app-tools): 修复运行 inspect 命令失败的问题
84
+
85
+ - 92004d1906: feat: support load chunks parallelly
86
+ feat: 支持并行加载 chunks
87
+ - b8bbe036c7: feat: change type logic
88
+ feat: 修改类型相关的逻辑
89
+ - 40ed5874c6: feat: inject css chunk into html for streaming ssr
90
+ feat: streaming ssr 返回的 html 注入 css chunk
91
+ - af4422d67f: feat(builder): complete utils of tools.webpack
92
+
93
+ feat(builder): 补全 tools.webpack 提供的 utils 方法
94
+
95
+ - 87c1ff86b9: feat(app-tools): attach builder instance to appContext
96
+
97
+ feat(app-tools): 将 builder 实例挂载到 appContext 上
98
+
99
+ - c258e34202: fix: add builder hooks `beforeBuild` params
100
+ fix: 新增 builder hooks `beforeBuild` 的参数
101
+ - 3b3d709: fix(app-tools): cli --analyze option not work
102
+
103
+ fix(app-tools): 修复 --analyze 命令行参数不生效的问题
104
+
105
+ - 8b8e1bb571: feat: support nested routes
106
+ feat: 支持嵌套路由
107
+ - 88eb147: fix(app-tools): builder's onBeforeCreateDevServer hook not work
108
+
109
+ fix(app-tools): 修复 builder 的 onBeforeCreateDevServer hook 无法触发的问题
110
+
111
+ - 8c32dc4: fix: builder should not be checked when apiOnly is true
112
+ fix: 当 apiOnly 为 true 时,builder 不应该被校验
113
+ - a2c8cc3: fix: change tools define userconfig type
114
+ fix: 修改工程定义的 UserConfig 类型
115
+ - b7a96c3: fix(app-tools): loose CLI init options after restart
116
+
117
+ fix(app-tools): 修复重启 CLI 后丢失 init options 的问题
118
+
119
+ - 7de97ae24f: fix: `deploy` command has't load `builder` instance
120
+ fix: `deploy` 命令没有加载 builder 实例
121
+ - cce8ece: fix: handle some `TODO` & `FIXME`, change some tests
122
+ fix: 处理一些 `TODO` 和 `FIXME`, 修改了一些 tests
123
+ - c3b7de4bfb: fix(app-tools): dev.assetPrefix not work
124
+
125
+ fix(app-tools): 修复 dev.assetPrefix 配置项不生效的问题
126
+
127
+ - 16a3441: fix(app-tools): remove duplicated port log
128
+
129
+ fix(app-tools): 修复 port 重复的日志输出两遍的问题
130
+
131
+ - 92004d1906: fix: use loadable lazy instead of loadable
132
+ fix: 使用 loadable lazy 组件替代 loadable
133
+ - c677befc22: fix(app-tools): compat legacy resolve behavior
134
+
135
+ fix(app-tools): 兼容旧版本 node_modules 解析逻辑
136
+
137
+ - 3f7cde5caa: fix: builder plugin setup can't get config
138
+ fix: builder 插件在 setup 阶段无法拿到 config
139
+ - 99213e4bae: fix: process does't exit when exec command
140
+ fix: 修复执行命令时进程未退出的问题
141
+ - b16fd964da: fix: `modern-js/app-tools` pass error config to builder.
142
+ fix: `modern-js/app-tools` 传递错误的 config 给 builder.
143
+ - 7eefedd7ca: fix: add html-webpack-plugin `__internal__` options, for bottom template
144
+ fix: 为了 bottom template, 增加 `html-webpack-plugin` `__internal__` 配置项,
145
+ - 14b712da84: fix: use consistent alias type and default value across packages
146
+
147
+ fix: 在各个包中使用一致的 alias 类型定义和默认值
148
+
149
+ - Updated dependencies [c9f912ca4d]
150
+ - Updated dependencies [95be7cc49c]
151
+ - Updated dependencies [e439457a51]
152
+ - Updated dependencies [4d1545f8c0]
153
+ - Updated dependencies [2bc090c089]
154
+ - Updated dependencies [f0abb2e]
155
+ - Updated dependencies [f96a725211]
156
+ - Updated dependencies [828f42f9ce]
157
+ - Updated dependencies [060abd4]
158
+ - Updated dependencies [309cd71]
159
+ - Updated dependencies [c7456864a8]
160
+ - Updated dependencies [c9e800d39a]
161
+ - Updated dependencies [d4e8e6f]
162
+ - Updated dependencies [0ff846fb56]
163
+ - Updated dependencies [3cf9633]
164
+ - Updated dependencies [6604f1b]
165
+ - Updated dependencies [57077b2c64]
166
+ - Updated dependencies [d032d49e09]
167
+ - Updated dependencies [6aca875]
168
+ - Updated dependencies [2ff6167be0]
169
+ - Updated dependencies [287f298990]
170
+ - Updated dependencies [15bf09d9c8]
171
+ - Updated dependencies [423188db70]
172
+ - Updated dependencies [fd2d652c03]
173
+ - Updated dependencies [0c2d8dae31]
174
+ - Updated dependencies [2edad29dd7]
175
+ - Updated dependencies [85edee888c]
176
+ - Updated dependencies [2e60319]
177
+ - Updated dependencies [a2509bfbdb]
178
+ - Updated dependencies [3998875791]
179
+ - Updated dependencies [ab3924a]
180
+ - Updated dependencies [3998875791]
181
+ - Updated dependencies [ba86b8b711]
182
+ - Updated dependencies [61f21d1e77]
183
+ - Updated dependencies [5402fdb0ca]
184
+ - Updated dependencies [2ae58176fe]
185
+ - Updated dependencies [92f0eade39]
186
+ - Updated dependencies [edd1cfb1af]
187
+ - Updated dependencies [5d67c26cdb]
188
+ - Updated dependencies [cc971eabfc]
189
+ - Updated dependencies [5b9049f2e9]
190
+ - Updated dependencies [a3af050]
191
+ - Updated dependencies [d4a456659b]
192
+ - Updated dependencies [18360a38d7]
193
+ - Updated dependencies [6bda14ed71]
194
+ - Updated dependencies [0b314e6946]
195
+ - Updated dependencies [92004d1906]
196
+ - Updated dependencies [b8bbe036c7]
197
+ - Updated dependencies [5911154]
198
+ - Updated dependencies [40ed5874c6]
199
+ - Updated dependencies [af4422d67f]
200
+ - Updated dependencies [705adc1]
201
+ - Updated dependencies [f680410]
202
+ - Updated dependencies [87c1ff86b9]
203
+ - Updated dependencies [d5a31df781]
204
+ - Updated dependencies [dda38c9c3e]
205
+ - Updated dependencies [102d32e4ba]
206
+ - Updated dependencies [c258e34202]
207
+ - Updated dependencies [812913ccdd]
208
+ - Updated dependencies [7248342e4d]
209
+ - Updated dependencies [568eab1e42]
210
+ - Updated dependencies [8b8e1bb571]
211
+ - Updated dependencies [3bbea92b2a]
212
+ - Updated dependencies [ae71096d45]
213
+ - Updated dependencies [73cd29dd9f]
214
+ - Updated dependencies [b710adb]
215
+ - Updated dependencies [b7a96c3]
216
+ - Updated dependencies [a23010138d]
217
+ - Updated dependencies [75d1b2657c]
218
+ - Updated dependencies [cce8ece]
219
+ - Updated dependencies [18aaf42249]
220
+ - Updated dependencies [f179749375]
221
+ - Updated dependencies [3fae2d03b3]
222
+ - Updated dependencies [ea7cf06]
223
+ - Updated dependencies [8a6d45f105]
224
+ - Updated dependencies [bbe4c4a]
225
+ - Updated dependencies [ebbeed1ece]
226
+ - Updated dependencies [90e2879520]
227
+ - Updated dependencies [e4558a0]
228
+ - Updated dependencies [df41d71ade]
229
+ - Updated dependencies [f727e5c6cc]
230
+ - Updated dependencies [5e3cecd523]
231
+ - Updated dependencies [abf3421a75]
232
+ - Updated dependencies [da2d1fc3c2]
233
+ - Updated dependencies [543be9558e]
234
+ - Updated dependencies [fd1d9fd]
235
+ - Updated dependencies [14b712da84]
236
+ - @modern-js/builder-webpack-provider@2.0.0-beta.3
237
+ - @modern-js/builder-shared@2.0.0-beta.3
238
+ - @modern-js/core@2.0.0-beta.3
239
+ - @modern-js/prod-server@2.0.0-beta.3
240
+ - @modern-js/server@2.0.0-beta.3
241
+ - @modern-js/builder-plugin-esbuild@2.0.0-beta.3
242
+ - @modern-js/plugin-data-loader@2.0.0-beta.3
243
+ - @modern-js/builder-plugin-node-polyfill@2.0.0-beta.3
244
+ - @modern-js/utils@2.0.0-beta.3
245
+ - @modern-js/types@2.0.0-beta.3
246
+ - @modern-js/node-bundle-require@2.0.0-beta.3
247
+ - @modern-js/plugin-lint@2.0.0-beta.3
248
+ - @modern-js/plugin@2.0.0-beta.3
249
+ - @modern-js/builder@2.0.0-beta.3
250
+ - @modern-js/plugin-i18n@2.0.0-beta.3
251
+ - @modern-js/new-action@2.0.0-beta.3
252
+ - @modern-js/upgrade@2.0.0-beta.3
253
+
254
+ ## 2.0.0-beta.2
255
+
256
+ ### Major Changes
257
+
258
+ - dda38c9c3e: chore: v2
259
+
260
+ ### Minor Changes
261
+
262
+ - edd1cfb1af: feat: modernjs Access builder compiler
263
+ feat: modernjs 接入 builder 构建
264
+ - 543be9558e: feat: compile server loader and support handle loader request
265
+ feat: 编译 server loader 并支持处理 loader 的请求
266
+
267
+ ### Patch Changes
268
+
269
+ - c9f912ca4d: feat(app-tools): improve build logs of dev and build command
270
+
271
+ feat(app-tools): 优化 dev 和 build 过程中的日志展示
272
+
273
+ - 103973cde9: fix: builder tools.webpackChain config args not match the Modernjs tools.webpackChain
274
+ fix: builder tools.webpackChain 配置传参无法匹配 Modernjs tools.webpackChain
275
+ - 0b2d1ef02b: fix: repeat register `babel-plugin-lodash`
276
+ fix: 重复注册 `babel-plugin-lodash`
277
+ - 82cef85ed7: fix: specify builder compiler framework
278
+ fix: 指明 builder 构建时框架
279
+ - 3e57f2b: feat: add document feature with plugin
280
+
281
+ feat: 增加 document 功能插件
282
+
283
+ - 85edee888c: feat(app-tools): support tools.htmlPlugin config
284
+
285
+ feat(app-tools): 支持 tools.htmlPlugin 配置项
286
+
287
+ - 5402fdb: feat(Builder): add output.disableTsChecker config
288
+
289
+ feat(Builder): 新增 output.disableTsChecker 配置项
290
+
291
+ - dc8eeb9cbb: fix: clear distDirectory in prepare hook & inject data loader plugin to server
292
+ fix: 在 prepare hook 中清理 dist 目录,并且向 server 中注入 data loader plugin
293
+ - cc971eabfc: refactor: move server plugin load logic in `@modern-js/core`
294
+ refactor:移除在 `@modern-js/core` 中的 server 插件加载逻辑
295
+ - 5b9049f2e9: feat: inject async js chunk when streaming ssr
296
+ feat: streaming ssr 时, 注入 async 类型的 js chunk
297
+ - d4a4566: chore: rename plugin-jarvis to plugin-lint
298
+
299
+ chore: 重命名 plugin-jarvis 为 plugin-lint
300
+
301
+ - 6bda14ed71: feat: refactor router with react-router@6.4
302
+
303
+ feat: 使用 react-router@6.4 重构路由模块
304
+
305
+ - d36c6ee126: fix(app-tools): failed to run inspect command
306
+
307
+ fix(app-tools): 修复运行 inspect 命令失败的问题
308
+
309
+ - 92004d1: feat: support load chunks parallelly
310
+ feat: 支持并行加载 chunks
311
+ - b8bbe036c7: feat: change type logic
312
+ feat: 修改类型相关的逻辑
313
+ - 40ed587: feat: inject css chunk into html for streaming ssr
314
+ feat: streaming ssr 返回的 html 注入 css chunk
315
+ - af4422d67f: feat(builder): complete utils of tools.webpack
316
+
317
+ feat(builder): 补全 tools.webpack 提供的 utils 方法
318
+
319
+ - 87c1ff8: feat(app-tools): attach builder instance to appContext
320
+
321
+ feat(app-tools): 将 builder 实例挂载到 appContext 上
322
+
323
+ - c258e34202: fix: add builder hooks `beforeBuild` params
324
+ fix: 新增 builder hooks `beforeBuild` 的参数
325
+ - 3b3d709: fix(app-tools): cli --analyze option not work
326
+
327
+ fix(app-tools): 修复 --analyze 命令行参数不生效的问题
328
+
329
+ - 8b8e1bb571: feat: support nested routes
330
+ feat: 支持嵌套路由
331
+ - a2c8cc3: fix: change tools define userconfig type
332
+ fix: 修改工程定义的 UserConfig 类型
333
+ - 7de97ae: fix: `deploy` command has't load `builder` instance
334
+ fix: `deploy` 命令没有加载 builder 实例
335
+ - c3b7de4: fix(app-tools): dev.assetPrefix not work
336
+
337
+ fix(app-tools): 修复 dev.assetPrefix 配置项不生效的问题
338
+
339
+ - 92004d1: fix: use loadable lazy instead of loadable
340
+ fix: 使用 loadable lazy 组件替代 loadable
341
+ - c677befc22: fix(app-tools): compat legacy resolve behavior
342
+
343
+ fix(app-tools): 兼容旧版本 node_modules 解析逻辑
344
+
345
+ - 3f7cde5caa: fix: builder plugin setup can't get config
346
+ fix: builder 插件在 setup 阶段无法拿到 config
347
+ - 99213e4bae: fix: process does't exit when exec command
348
+ fix: 修复执行命令时进程未退出的问题
349
+ - b16fd964da: fix: `modern-js/app-tools` pass error config to builder.
350
+ fix: `modern-js/app-tools` 传递错误的 config 给 builder.
351
+ - 7eefedd7ca: fix: add html-webpack-plugin `__internal__` options, for bottom template
352
+ fix: 为了 bottom template, 增加 `html-webpack-plugin` `__internal__` 配置项,
353
+ - 14b712da84: fix: use consistent alias type and default value across packages
354
+
355
+ fix: 在各个包中使用一致的 alias 类型定义和默认值
356
+
357
+ - Updated dependencies [c9f912ca4d]
358
+ - Updated dependencies [95be7cc49c]
359
+ - Updated dependencies [e439457a51]
360
+ - Updated dependencies [4d1545f8c0]
361
+ - Updated dependencies [2bc090c089]
362
+ - Updated dependencies [f96a725211]
363
+ - Updated dependencies [828f42f9ce]
364
+ - Updated dependencies [060abd4]
365
+ - Updated dependencies [309cd71]
366
+ - Updated dependencies [c7456864a8]
367
+ - Updated dependencies [c9e800d39a]
368
+ - Updated dependencies [0ff846fb56]
369
+ - Updated dependencies [3cf9633]
370
+ - Updated dependencies [57077b2c64]
371
+ - Updated dependencies [d032d49]
372
+ - Updated dependencies [2ff6167]
373
+ - Updated dependencies [287f298990]
374
+ - Updated dependencies [15bf09d9c8]
375
+ - Updated dependencies [423188db70]
376
+ - Updated dependencies [fd2d652c03]
377
+ - Updated dependencies [0c2d8dae31]
378
+ - Updated dependencies [2edad29]
379
+ - Updated dependencies [85edee888c]
380
+ - Updated dependencies [a2509bfbdb]
381
+ - Updated dependencies [3998875791]
382
+ - Updated dependencies [ab3924a]
383
+ - Updated dependencies [3998875791]
384
+ - Updated dependencies [ba86b8b711]
385
+ - Updated dependencies [61f21d1e77]
386
+ - Updated dependencies [5402fdb]
387
+ - Updated dependencies [2ae58176fe]
388
+ - Updated dependencies [92f0ead]
389
+ - Updated dependencies [edd1cfb1af]
390
+ - Updated dependencies [5d67c26cdb]
391
+ - Updated dependencies [cc971eabfc]
392
+ - Updated dependencies [5b9049f2e9]
393
+ - Updated dependencies [d4a4566]
394
+ - Updated dependencies [18360a38d7]
395
+ - Updated dependencies [6bda14ed71]
396
+ - Updated dependencies [0b314e6946]
397
+ - Updated dependencies [92004d1]
398
+ - Updated dependencies [b8bbe036c7]
399
+ - Updated dependencies [5911154]
400
+ - Updated dependencies [40ed587]
401
+ - Updated dependencies [af4422d67f]
402
+ - Updated dependencies [705adc1]
403
+ - Updated dependencies [87c1ff8]
404
+ - Updated dependencies [d5a31df781]
405
+ - Updated dependencies [dda38c9c3e]
406
+ - Updated dependencies [102d32e4ba]
407
+ - Updated dependencies [c258e34202]
408
+ - Updated dependencies [812913c]
409
+ - Updated dependencies [7248342e4d]
410
+ - Updated dependencies [568eab1e42]
411
+ - Updated dependencies [8b8e1bb571]
412
+ - Updated dependencies [3bbea92b2a]
413
+ - Updated dependencies [ae71096d45]
414
+ - Updated dependencies [73cd29dd9f]
415
+ - Updated dependencies [a23010138d]
416
+ - Updated dependencies [75d1b2657c]
417
+ - Updated dependencies [18aaf42]
418
+ - Updated dependencies [f179749]
419
+ - Updated dependencies [3fae2d0]
420
+ - Updated dependencies [8a6d45f105]
421
+ - Updated dependencies [ebbeed1]
422
+ - Updated dependencies [90e2879520]
423
+ - Updated dependencies [df41d71]
424
+ - Updated dependencies [f727e5c6cc]
425
+ - Updated dependencies [5e3cecd523]
426
+ - Updated dependencies [abf3421a75]
427
+ - Updated dependencies [da2d1fc3c2]
428
+ - Updated dependencies [543be9558e]
429
+ - Updated dependencies [14b712da84]
430
+ - @modern-js/builder-webpack-provider@2.0.0-beta.2
431
+ - @modern-js/builder-shared@2.0.0-beta.2
432
+ - @modern-js/core@2.0.0-beta.2
433
+ - @modern-js/prod-server@2.0.0-beta.2
434
+ - @modern-js/builder-plugin-esbuild@2.0.0-beta.2
435
+ - @modern-js/server@2.0.0-beta.2
436
+ - @modern-js/node-bundle-require@2.0.0-beta.2
437
+ - @modern-js/utils@2.0.0-beta.2
438
+ - @modern-js/builder-plugin-node-polyfill@2.0.0-beta.2
439
+ - @modern-js/types@2.0.0-beta.2
440
+ - @modern-js/plugin-lint@2.0.0-beta.2
441
+ - @modern-js/plugin@2.0.0-beta.2
442
+ - @modern-js/builder@2.0.0-beta.2
443
+ - @modern-js/plugin-data-loader@2.0.0-beta.2
444
+ - @modern-js/plugin-i18n@2.0.0-beta.2
445
+ - @modern-js/new-action@2.0.0-beta.2
446
+ - @modern-js/upgrade@2.0.0-beta.2
447
+
3
448
  ## 2.0.0-beta.1
4
449
 
5
450
  ### Major Changes
package/bin/modern.js CHANGED
@@ -1,3 +1,12 @@
1
1
  #!/usr/bin/env node
2
+ const {
3
+ INTERNAL_APP_TOOLS_PLUGINS,
4
+ INTERNAL_SERVER_PLUGINS,
5
+ } = require('@modern-js/utils');
2
6
 
3
- require('@modern-js/core/bin');
7
+ require('@modern-js/core/runBin').run({
8
+ internalPlugins: {
9
+ cli: INTERNAL_APP_TOOLS_PLUGINS,
10
+ server: INTERNAL_SERVER_PLUGINS,
11
+ },
12
+ });
@@ -4,6 +4,8 @@ export const APP_FILE_NAME = 'App';
4
4
  export const PAGES_DIR_NAME = 'pages';
5
5
  export const NESTED_ROUTES_DIR = 'routes';
6
6
  export const FILE_SYSTEM_ROUTES_FILE_NAME = 'routes.js';
7
+ export const LOADER_EXPORT_NAME = 'loader';
8
+ export const TEMP_LOADERS_DIR = '__loaders__';
7
9
  export const ENTRY_POINT_FILE_NAME = 'index.js';
8
10
  export const ENTRY_BOOTSTRAP_FILE_NAME = 'bootstrap.js';
9
11
  export const FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP = /^\[(\S+)\]([*+?]?)$/;
@@ -1,13 +1,18 @@
1
1
  import path from 'path';
2
- import { fs, logger } from '@modern-js/utils';
2
+ import { fs, LOADER_ROUTES_DIR, logger } from '@modern-js/utils';
3
3
  import { useResolvedConfigContext } from '@modern-js/core';
4
4
  import esbuild from 'esbuild';
5
5
  import { getCommand } from "../utils/commands";
6
6
  import * as templates from "./templates";
7
7
  import { getClientRoutes, getClientRoutesLegacy } from "./getClientRoutes";
8
- import { FILE_SYSTEM_ROUTES_FILE_NAME, ENTRY_POINT_FILE_NAME, ENTRY_BOOTSTRAP_FILE_NAME } from "./constants";
8
+ import { FILE_SYSTEM_ROUTES_FILE_NAME, ENTRY_POINT_FILE_NAME, ENTRY_BOOTSTRAP_FILE_NAME, TEMP_LOADERS_DIR } from "./constants";
9
9
  import { getDefaultImports } from "./utils";
10
10
  import { walk } from "./nestedRoutes";
11
+ const loader = {
12
+ '.js': 'jsx',
13
+ '.ts': 'tsx'
14
+ };
15
+ const EXTERNAL_REGEXP = /^[^./]|^\.[^./]|^\.\.[^/]/;
11
16
  const createImportSpecifier = specifiers => {
12
17
  let defaults = '';
13
18
  const named = [];
@@ -63,15 +68,10 @@ export const createImportStatements = statements => {
63
68
  }) => `import ${createImportSpecifier(specifiers)} from '${value}';\n${initialize || ''}`).join('\n');
64
69
  };
65
70
  const buildLoader = async (entry, outfile) => {
66
- const loader = {
67
- '.js': 'jsx',
68
- '.ts': 'tsx'
69
- };
70
- const EXTERNAL_REGEXP = /^[^./]|^\.[^./]|^\.\.[^/]/;
71
71
  const command = getCommand();
72
72
  await esbuild.build({
73
- format: 'cjs',
74
- platform: 'node',
73
+ format: 'esm',
74
+ platform: 'browser',
75
75
  target: 'esnext',
76
76
  loader,
77
77
  watch: command === 'dev' && {},
@@ -100,6 +100,20 @@ const buildLoader = async (entry, outfile) => {
100
100
  }]
101
101
  });
102
102
  };
103
+ const buildServerLoader = async (entry, outfile) => {
104
+ const command = getCommand();
105
+ await esbuild.build({
106
+ format: 'cjs',
107
+ platform: 'node',
108
+ target: 'esnext',
109
+ loader,
110
+ watch: command === 'dev' && {},
111
+ bundle: true,
112
+ logLevel: 'error',
113
+ entryPoints: [entry],
114
+ outfile
115
+ });
116
+ };
103
117
  export const generateCode = async (appContext, config, entrypoints, api) => {
104
118
  var _config$runtime, _config$runtime$route;
105
119
  const {
@@ -113,7 +127,7 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
113
127
  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);
114
128
  const {
115
129
  mountId
116
- } = config.output;
130
+ } = config.html;
117
131
  const getRoutes = islegacy ? getClientRoutesLegacy : getClientRoutes;
118
132
  await Promise.all(entrypoints.map(generateEntryCode));
119
133
  async function generateEntryCode(entrypoint) {
@@ -178,28 +192,34 @@ export const generateCode = async (appContext, config, entrypoints, api) => {
178
192
  code
179
193
  } = await hookRunners.beforeGenerateRoutes({
180
194
  entrypoint,
181
- code: templates.fileSystemRoutes({
195
+ code: await templates.fileSystemRoutes({
182
196
  routes,
183
197
  ssrMode: mode,
184
198
  nestedRoutesEntry: entrypoint.nestedRoutesEntry,
185
- entryName: entrypoint.entryName
199
+ entryName: entrypoint.entryName,
200
+ internalDirectory
186
201
  })
187
202
  });
188
203
 
189
204
  // extract nested router loaders
190
205
  if (entrypoint.nestedRoutesEntry) {
191
- const routesServerFile = path.join(internalDirectory, entryName, 'routes.server.js');
192
- const outputRoutesServerFile = path.join(distDirectory, 'loader-routes', entryName, 'index.js');
206
+ const routesServerFile = path.join(internalDirectory, entryName, 'route-server-loaders.js');
207
+ const outputRoutesServerFile = path.join(distDirectory, LOADER_ROUTES_DIR, entryName, 'index.js');
193
208
  const code = templates.routesForServer({
194
209
  routes: routes,
195
- alias: {
196
- name: internalSrcAlias,
197
- basename: srcDirectory
198
- }
210
+ internalDirectory,
211
+ entryName
199
212
  });
200
213
  await fs.ensureFile(routesServerFile);
201
214
  await fs.writeFile(routesServerFile, code);
202
- await buildLoader(routesServerFile, outputRoutesServerFile);
215
+ const loaderEntryFile = path.join(internalDirectory, entryName, TEMP_LOADERS_DIR, 'entry.js');
216
+ const loaderIndexFile = path.join(internalDirectory, entryName, TEMP_LOADERS_DIR, 'index.js');
217
+ if (await fs.pathExists(loaderEntryFile)) {
218
+ await buildLoader(loaderEntryFile, loaderIndexFile);
219
+ }
220
+ if (await fs.pathExists(routesServerFile)) {
221
+ await buildServerLoader(routesServerFile, outputRoutesServerFile);
222
+ }
203
223
  }
204
224
  fs.outputFileSync(path.resolve(internalDirectory, `./${entryName}/${FILE_SYSTEM_ROUTES_FILE_NAME}`), code, 'utf8');
205
225
  }
@@ -56,7 +56,7 @@ export const getBundleEntry = (appContext, config) => {
56
56
  }
57
57
  if (!disableDefaultEntries) {
58
58
  // find main entry point which server route is '/'.
59
- const entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir);
59
+ const entriesDirAbs = ensureAbsolutePath(appDirectory, entriesDir || '');
60
60
  const found = defaults.find(({
61
61
  entryName,
62
62
  entry,
@@ -67,7 +67,7 @@ export const getFileSystemEntry = (appContext, config) => {
67
67
  entriesDir
68
68
  }
69
69
  } = config;
70
- const src = ensureAbsolutePath(appDirectory, entriesDir);
70
+ const src = ensureAbsolutePath(appDirectory, entriesDir || '');
71
71
  if (fs.existsSync(src)) {
72
72
  if (fs.statSync(src).isDirectory()) {
73
73
  return scanDir(isBundleEntry(src) ? [src] : fs.readdirSync(src).map(file => path.join(src, file)).filter(file => fs.statSync(file).isDirectory() && isBundleEntry(file)));
@@ -36,7 +36,7 @@ export const getHtmlTemplate = async (entrypoints, api, {
36
36
  configDir
37
37
  }
38
38
  } = config;
39
- const htmlDir = path.resolve(appDirectory, configDir, HTML_PARTIALS_FOLDER);
39
+ const htmlDir = path.resolve(appDirectory, configDir || '', HTML_PARTIALS_FOLDER);
40
40
  const htmlTemplates = {};
41
41
  for (const entrypoint of entrypoints) {
42
42
  const {
@@ -94,9 +94,13 @@ const applyRouteOptions = (original, routeOptions) => {
94
94
  */
95
95
  const collectHtmlRoutes = (entrypoints, appContext, config) => {
96
96
  const {
97
+ html: {
98
+ disableHtmlFolder
99
+ },
97
100
  output: {
98
- htmlPath,
99
- disableHtmlFolder,
101
+ distPath: {
102
+ html: htmlPath
103
+ } = {},
100
104
  enableModernMode
101
105
  },
102
106
  server: {
@@ -157,14 +161,14 @@ const collectStaticRoutes = (appContext, config) => {
157
161
  publicRoutes = {}
158
162
  }
159
163
  } = config;
160
- const publicFolder = path.resolve(appDirectory, configDir, 'public');
164
+ const publicFolder = path.resolve(appDirectory, configDir || '', 'public');
161
165
  return fs.existsSync(publicFolder) ? walkDirectory(publicFolder).map(filePath => {
162
166
  const urlPath = `${urlJoin(toPosix(filePath).slice(toPosix(publicFolder).length))}`;
163
167
  return {
164
168
  urlPath: publicRoutes[removeLeadingSlash(urlPath)] || urlPath,
165
169
  isSPA: true,
166
170
  isSSR: false,
167
- entryPath: toPosix(path.relative(path.resolve(appDirectory, configDir), filePath))
171
+ entryPath: toPosix(path.relative(path.resolve(appDirectory, configDir || ''), filePath))
168
172
  };
169
173
  }) : [];
170
174
  };