@modern-js/app-tools 2.35.2-alpha.0 → 2.36.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 (259) hide show
  1. package/dist/cjs/analyze/index.js +5 -7
  2. package/dist/cjs/analyze/nestedRoutes.js +3 -0
  3. package/dist/cjs/analyze/templates.js +1 -1
  4. package/dist/cjs/builder/builder-rspack/adapterCopy.js +14 -10
  5. package/dist/cjs/builder/builder-webpack/adapterModern.js +0 -2
  6. package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +2 -0
  7. package/dist/cjs/config/initialize/inits.js +0 -16
  8. package/dist/esm/analyze/index.js +5 -7
  9. package/dist/esm/analyze/nestedRoutes.js +3 -0
  10. package/dist/esm/analyze/templates.js +1 -1
  11. package/dist/esm/builder/builder-rspack/adapterCopy.js +12 -8
  12. package/dist/esm/builder/builder-webpack/adapterModern.js +0 -2
  13. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +2 -0
  14. package/dist/esm/config/initialize/inits.js +2 -17
  15. package/dist/esm-node/analyze/index.js +5 -7
  16. package/dist/esm-node/analyze/nestedRoutes.js +3 -0
  17. package/dist/esm-node/analyze/templates.js +1 -1
  18. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +14 -10
  19. package/dist/esm-node/builder/builder-webpack/adapterModern.js +0 -2
  20. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +2 -0
  21. package/dist/esm-node/config/initialize/inits.js +2 -18
  22. package/package.json +24 -24
  23. package/dist/js/modern/analyze/constants.js +0 -54
  24. package/dist/js/modern/analyze/generateCode.js +0 -247
  25. package/dist/js/modern/analyze/getBundleEntry.js +0 -71
  26. package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +0 -220
  27. package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +0 -216
  28. package/dist/js/modern/analyze/getClientRoutes/index.js +0 -6
  29. package/dist/js/modern/analyze/getClientRoutes/utils.js +0 -31
  30. package/dist/js/modern/analyze/getFileSystemEntry.js +0 -109
  31. package/dist/js/modern/analyze/getHtmlTemplate.js +0 -115
  32. package/dist/js/modern/analyze/getServerRoutes.js +0 -175
  33. package/dist/js/modern/analyze/index.js +0 -332
  34. package/dist/js/modern/analyze/isDefaultExportFunction.js +0 -42
  35. package/dist/js/modern/analyze/makeLegalIdentifier.js +0 -13
  36. package/dist/js/modern/analyze/nestedRoutes.js +0 -157
  37. package/dist/js/modern/analyze/templates.js +0 -334
  38. package/dist/js/modern/analyze/utils.js +0 -141
  39. package/dist/js/modern/builder/builderPlugins/compatModern.js +0 -233
  40. package/dist/js/modern/builder/index.js +0 -159
  41. package/dist/js/modern/builder/loaders/routerLoader.js +0 -17
  42. package/dist/js/modern/builder/loaders/serverModuleLoader.js +0 -7
  43. package/dist/js/modern/builder/share.js +0 -46
  44. package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -30
  45. package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +0 -37
  46. package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +0 -113
  47. package/dist/js/modern/commands/build.js +0 -91
  48. package/dist/js/modern/commands/deploy.js +0 -28
  49. package/dist/js/modern/commands/dev.js +0 -109
  50. package/dist/js/modern/commands/index.js +0 -3
  51. package/dist/js/modern/commands/inspect.js +0 -38
  52. package/dist/js/modern/commands/serve.js +0 -54
  53. package/dist/js/modern/config/default.js +0 -175
  54. package/dist/js/modern/config/index.js +0 -8
  55. package/dist/js/modern/config/initial/createHtmlConfig.js +0 -35
  56. package/dist/js/modern/config/initial/createOutputConfig.js +0 -68
  57. package/dist/js/modern/config/initial/createSourceConfig.js +0 -39
  58. package/dist/js/modern/config/initial/createToolsConfig.js +0 -42
  59. package/dist/js/modern/config/initial/index.js +0 -16
  60. package/dist/js/modern/config/initial/inits.js +0 -152
  61. package/dist/js/modern/config/initial/transformNormalizedConfig.js +0 -47
  62. package/dist/js/modern/defineConfig.js +0 -27
  63. package/dist/js/modern/exports/server.js +0 -4
  64. package/dist/js/modern/hooks.js +0 -35
  65. package/dist/js/modern/index.js +0 -211
  66. package/dist/js/modern/initialize/index.js +0 -124
  67. package/dist/js/modern/locale/en.js +0 -36
  68. package/dist/js/modern/locale/index.js +0 -9
  69. package/dist/js/modern/locale/zh.js +0 -36
  70. package/dist/js/modern/schema/Schema.js +0 -40
  71. package/dist/js/modern/schema/index.js +0 -88
  72. package/dist/js/modern/schema/legacy.js +0 -148
  73. package/dist/js/modern/types/config/deploy.js +0 -0
  74. package/dist/js/modern/types/config/dev.js +0 -0
  75. package/dist/js/modern/types/config/experiments.js +0 -0
  76. package/dist/js/modern/types/config/html.js +0 -0
  77. package/dist/js/modern/types/config/index.js +0 -1
  78. package/dist/js/modern/types/config/output.js +0 -0
  79. package/dist/js/modern/types/config/performance.js +0 -0
  80. package/dist/js/modern/types/config/security.js +0 -0
  81. package/dist/js/modern/types/config/source.js +0 -0
  82. package/dist/js/modern/types/config/tools.js +0 -0
  83. package/dist/js/modern/types/hooks.js +0 -0
  84. package/dist/js/modern/types/index.js +0 -3
  85. package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
  86. package/dist/js/modern/types/legacyConfig/dev.js +0 -0
  87. package/dist/js/modern/types/legacyConfig/index.js +0 -0
  88. package/dist/js/modern/types/legacyConfig/output.js +0 -0
  89. package/dist/js/modern/types/legacyConfig/source.js +0 -0
  90. package/dist/js/modern/types/legacyConfig/tools.js +0 -0
  91. package/dist/js/modern/utils/config.js +0 -128
  92. package/dist/js/modern/utils/createServer.js +0 -75
  93. package/dist/js/modern/utils/env.js +0 -15
  94. package/dist/js/modern/utils/generateWatchFiles.js +0 -55
  95. package/dist/js/modern/utils/getSelectedEntries.js +0 -58
  96. package/dist/js/modern/utils/getServerInternalPlugins.js +0 -58
  97. package/dist/js/modern/utils/language.js +0 -8
  98. package/dist/js/modern/utils/printInstructions.js +0 -31
  99. package/dist/js/modern/utils/restart.js +0 -44
  100. package/dist/js/modern/utils/routes.js +0 -30
  101. package/dist/js/modern/utils/types.js +0 -0
  102. package/dist/js/node/analyze/constants.js +0 -98
  103. package/dist/js/node/analyze/generateCode.js +0 -271
  104. package/dist/js/node/analyze/getBundleEntry.js +0 -95
  105. package/dist/js/node/analyze/getClientRoutes/getRoutes.js +0 -242
  106. package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +0 -238
  107. package/dist/js/node/analyze/getClientRoutes/index.js +0 -30
  108. package/dist/js/node/analyze/getClientRoutes/utils.js +0 -58
  109. package/dist/js/node/analyze/getFileSystemEntry.js +0 -131
  110. package/dist/js/node/analyze/getHtmlTemplate.js +0 -144
  111. package/dist/js/node/analyze/getServerRoutes.js +0 -194
  112. package/dist/js/node/analyze/index.js +0 -339
  113. package/dist/js/node/analyze/isDefaultExportFunction.js +0 -71
  114. package/dist/js/node/analyze/makeLegalIdentifier.js +0 -36
  115. package/dist/js/node/analyze/nestedRoutes.js +0 -184
  116. package/dist/js/node/analyze/templates.js +0 -365
  117. package/dist/js/node/analyze/utils.js +0 -172
  118. package/dist/js/node/builder/builderPlugins/compatModern.js +0 -258
  119. package/dist/js/node/builder/index.js +0 -177
  120. package/dist/js/node/builder/loaders/routerLoader.js +0 -38
  121. package/dist/js/node/builder/loaders/serverModuleLoader.js +0 -28
  122. package/dist/js/node/builder/share.js +0 -75
  123. package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -53
  124. package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +0 -60
  125. package/dist/js/node/builder/webpackPlugins/routerPlugin.js +0 -135
  126. package/dist/js/node/commands/build.js +0 -112
  127. package/dist/js/node/commands/deploy.js +0 -51
  128. package/dist/js/node/commands/dev.js +0 -126
  129. package/dist/js/node/commands/index.js +0 -19
  130. package/dist/js/node/commands/inspect.js +0 -61
  131. package/dist/js/node/commands/serve.js +0 -83
  132. package/dist/js/node/config/default.js +0 -197
  133. package/dist/js/node/config/index.js +0 -34
  134. package/dist/js/node/config/initial/createHtmlConfig.js +0 -58
  135. package/dist/js/node/config/initial/createOutputConfig.js +0 -91
  136. package/dist/js/node/config/initial/createSourceConfig.js +0 -62
  137. package/dist/js/node/config/initial/createToolsConfig.js +0 -65
  138. package/dist/js/node/config/initial/index.js +0 -41
  139. package/dist/js/node/config/initial/inits.js +0 -175
  140. package/dist/js/node/config/initial/transformNormalizedConfig.js +0 -70
  141. package/dist/js/node/defineConfig.js +0 -49
  142. package/dist/js/node/exports/server.js +0 -27
  143. package/dist/js/node/hooks.js +0 -54
  144. package/dist/js/node/index.js +0 -235
  145. package/dist/js/node/initialize/index.js +0 -134
  146. package/dist/js/node/locale/en.js +0 -59
  147. package/dist/js/node/locale/index.js +0 -33
  148. package/dist/js/node/locale/zh.js +0 -59
  149. package/dist/js/node/schema/Schema.js +0 -63
  150. package/dist/js/node/schema/index.js +0 -118
  151. package/dist/js/node/schema/legacy.js +0 -169
  152. package/dist/js/node/types/config/deploy.js +0 -15
  153. package/dist/js/node/types/config/dev.js +0 -15
  154. package/dist/js/node/types/config/experiments.js +0 -15
  155. package/dist/js/node/types/config/html.js +0 -15
  156. package/dist/js/node/types/config/index.js +0 -17
  157. package/dist/js/node/types/config/output.js +0 -15
  158. package/dist/js/node/types/config/performance.js +0 -15
  159. package/dist/js/node/types/config/security.js +0 -15
  160. package/dist/js/node/types/config/source.js +0 -15
  161. package/dist/js/node/types/config/tools.js +0 -15
  162. package/dist/js/node/types/hooks.js +0 -15
  163. package/dist/js/node/types/index.js +0 -19
  164. package/dist/js/node/types/legacyConfig/deploy.js +0 -15
  165. package/dist/js/node/types/legacyConfig/dev.js +0 -15
  166. package/dist/js/node/types/legacyConfig/index.js +0 -15
  167. package/dist/js/node/types/legacyConfig/output.js +0 -15
  168. package/dist/js/node/types/legacyConfig/source.js +0 -15
  169. package/dist/js/node/types/legacyConfig/tools.js +0 -15
  170. package/dist/js/node/utils/config.js +0 -153
  171. package/dist/js/node/utils/createServer.js +0 -106
  172. package/dist/js/node/utils/env.js +0 -38
  173. package/dist/js/node/utils/generateWatchFiles.js +0 -85
  174. package/dist/js/node/utils/getSelectedEntries.js +0 -81
  175. package/dist/js/node/utils/getServerInternalPlugins.js +0 -79
  176. package/dist/js/node/utils/language.js +0 -31
  177. package/dist/js/node/utils/printInstructions.js +0 -54
  178. package/dist/js/node/utils/restart.js +0 -67
  179. package/dist/js/node/utils/routes.js +0 -59
  180. package/dist/js/node/utils/types.js +0 -15
  181. package/dist/js/treeshaking/analyze/constants.js +0 -40
  182. package/dist/js/treeshaking/analyze/generateCode.js +0 -485
  183. package/dist/js/treeshaking/analyze/getBundleEntry.js +0 -62
  184. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +0 -233
  185. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +0 -231
  186. package/dist/js/treeshaking/analyze/getClientRoutes/index.js +0 -3
  187. package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +0 -23
  188. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +0 -107
  189. package/dist/js/treeshaking/analyze/getHtmlTemplate.js +0 -302
  190. package/dist/js/treeshaking/analyze/getServerRoutes.js +0 -222
  191. package/dist/js/treeshaking/analyze/index.js +0 -697
  192. package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +0 -47
  193. package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +0 -13
  194. package/dist/js/treeshaking/analyze/nestedRoutes.js +0 -384
  195. package/dist/js/treeshaking/analyze/templates.js +0 -468
  196. package/dist/js/treeshaking/analyze/utils.js +0 -374
  197. package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +0 -304
  198. package/dist/js/treeshaking/builder/index.js +0 -374
  199. package/dist/js/treeshaking/builder/loaders/routerLoader.js +0 -13
  200. package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +0 -5
  201. package/dist/js/treeshaking/builder/share.js +0 -40
  202. package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -110
  203. package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +0 -72
  204. package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +0 -343
  205. package/dist/js/treeshaking/commands/build.js +0 -291
  206. package/dist/js/treeshaking/commands/deploy.js +0 -154
  207. package/dist/js/treeshaking/commands/dev.js +0 -301
  208. package/dist/js/treeshaking/commands/index.js +0 -3
  209. package/dist/js/treeshaking/commands/inspect.js +0 -149
  210. package/dist/js/treeshaking/commands/serve.js +0 -199
  211. package/dist/js/treeshaking/config/default.js +0 -210
  212. package/dist/js/treeshaking/config/index.js +0 -3
  213. package/dist/js/treeshaking/config/initial/createHtmlConfig.js +0 -19
  214. package/dist/js/treeshaking/config/initial/createOutputConfig.js +0 -41
  215. package/dist/js/treeshaking/config/initial/createSourceConfig.js +0 -42
  216. package/dist/js/treeshaking/config/initial/createToolsConfig.js +0 -23
  217. package/dist/js/treeshaking/config/initial/index.js +0 -12
  218. package/dist/js/treeshaking/config/initial/inits.js +0 -209
  219. package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +0 -35
  220. package/dist/js/treeshaking/defineConfig.js +0 -61
  221. package/dist/js/treeshaking/exports/server.js +0 -2
  222. package/dist/js/treeshaking/hooks.js +0 -29
  223. package/dist/js/treeshaking/index.js +0 -706
  224. package/dist/js/treeshaking/initialize/index.js +0 -276
  225. package/dist/js/treeshaking/locale/en.js +0 -38
  226. package/dist/js/treeshaking/locale/index.js +0 -9
  227. package/dist/js/treeshaking/locale/zh.js +0 -38
  228. package/dist/js/treeshaking/schema/Schema.js +0 -273
  229. package/dist/js/treeshaking/schema/index.js +0 -181
  230. package/dist/js/treeshaking/schema/legacy.js +0 -337
  231. package/dist/js/treeshaking/types/config/deploy.js +0 -1
  232. package/dist/js/treeshaking/types/config/dev.js +0 -1
  233. package/dist/js/treeshaking/types/config/experiments.js +0 -1
  234. package/dist/js/treeshaking/types/config/html.js +0 -1
  235. package/dist/js/treeshaking/types/config/index.js +0 -1
  236. package/dist/js/treeshaking/types/config/output.js +0 -1
  237. package/dist/js/treeshaking/types/config/performance.js +0 -1
  238. package/dist/js/treeshaking/types/config/security.js +0 -1
  239. package/dist/js/treeshaking/types/config/source.js +0 -1
  240. package/dist/js/treeshaking/types/config/tools.js +0 -1
  241. package/dist/js/treeshaking/types/hooks.js +0 -1
  242. package/dist/js/treeshaking/types/index.js +0 -3
  243. package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -1
  244. package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -1
  245. package/dist/js/treeshaking/types/legacyConfig/index.js +0 -1
  246. package/dist/js/treeshaking/types/legacyConfig/output.js +0 -1
  247. package/dist/js/treeshaking/types/legacyConfig/source.js +0 -1
  248. package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -1
  249. package/dist/js/treeshaking/utils/config.js +0 -302
  250. package/dist/js/treeshaking/utils/createServer.js +0 -258
  251. package/dist/js/treeshaking/utils/env.js +0 -13
  252. package/dist/js/treeshaking/utils/generateWatchFiles.js +0 -214
  253. package/dist/js/treeshaking/utils/getSelectedEntries.js +0 -186
  254. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +0 -210
  255. package/dist/js/treeshaking/utils/language.js +0 -6
  256. package/dist/js/treeshaking/utils/printInstructions.js +0 -152
  257. package/dist/js/treeshaking/utils/restart.js +0 -187
  258. package/dist/js/treeshaking/utils/routes.js +0 -153
  259. package/dist/js/treeshaking/utils/types.js +0 -1
@@ -147,13 +147,11 @@ var analyze_default = ({ bundler }) => ({
147
147
  });
148
148
  builder.onDevCompileDone(async ({ isFirstCompile }) => {
149
149
  const hookRunners2 = api.useHookRunners();
150
- if (process.stdout.isTTY || isFirstCompile) {
151
- hookRunners2.afterDev({
152
- isFirstCompile
153
- });
154
- if (isFirstCompile) {
155
- (0, import_printInstructions.printInstructions)(hookRunners2, appContext, normalizedConfig);
156
- }
150
+ hookRunners2.afterDev({
151
+ isFirstCompile
152
+ });
153
+ if (isFirstCompile) {
154
+ (0, import_printInstructions.printInstructions)(hookRunners2, appContext, normalizedConfig);
157
155
  }
158
156
  });
159
157
  builder.onBeforeCreateCompiler(async ({ bundlerConfigs }) => {
@@ -281,6 +281,9 @@ const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldVersion)
281
281
  };
282
282
  }
283
283
  }
284
+ if (isRoot && !finalRoute._component) {
285
+ throw new Error("The root layout component is required, make sure the routes/layout.tsx file exists.");
286
+ }
284
287
  if (isRoot && !oldVersion) {
285
288
  const optimizedRoutes = optimizeRoute(finalRoute);
286
289
  return optimizedRoutes;
@@ -210,7 +210,7 @@ const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName,
210
210
  }
211
211
  const clientDataStr = clientData ? `&clientData=${clientData}` : "";
212
212
  if (nestedRoutesEntry) {
213
- return `?loaderId=${loaderId}${clientDataStr}&action=${action}&inline=${inline}&routeId=${routeId}`;
213
+ return `?loaderId=${loaderId}${clientDataStr}&action=${action ? (0, import_utils.slash)(action) : action}&inline=${inline}&routeId=${routeId}`;
214
214
  }
215
215
  return "";
216
216
  };
@@ -39,17 +39,21 @@ const builderPluginAdpaterCopy = (options) => ({
39
39
  name: "builder-plugin-adapter-rspack-copy",
40
40
  setup(api) {
41
41
  let publicPath;
42
+ api.modifyBundlerChain((chain, { CHAIN_ID }) => {
43
+ chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
44
+ var _args_;
45
+ return [
46
+ {
47
+ patterns: [
48
+ ...((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || [],
49
+ ...createConfigBuiltinCopy(options)
50
+ ]
51
+ }
52
+ ];
53
+ });
54
+ });
42
55
  api.modifyRspackConfig((config) => {
43
- var _config_builtins_copy, _config_builtins, _config_output;
44
- config.builtins = {
45
- ...config.builtins || {},
46
- copy: {
47
- patterns: [
48
- ...((_config_builtins = config.builtins) === null || _config_builtins === void 0 ? void 0 : (_config_builtins_copy = _config_builtins.copy) === null || _config_builtins_copy === void 0 ? void 0 : _config_builtins_copy.patterns) || [],
49
- ...createConfigBuiltinCopy(options)
50
- ]
51
- }
52
- };
56
+ var _config_output;
53
57
  publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
54
58
  });
55
59
  api.onDevCompileDone(async () => {
@@ -21,14 +21,12 @@ __export(adapterModern_exports, {
21
21
  builderPluginAdapterModern: () => builderPluginAdapterModern
22
22
  });
23
23
  module.exports = __toCommonJS(adapterModern_exports);
24
- var import_path = require("path");
25
24
  var import_createCopyPattern = require("./createCopyPattern");
26
25
  const builderPluginAdapterModern = (options) => ({
27
26
  name: "builder-plugin-adapter-modern",
28
27
  setup(api) {
29
28
  const { normalizedConfig: modernConfig, appContext } = options;
30
29
  api.modifyWebpackChain((chain, { CHAIN_ID }) => {
31
- chain.resolve.modules.add("node_modules").add((0, import_path.join)(api.context.rootPath, "node_modules"));
32
30
  if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
33
31
  const defaultCopyPattern = (0, import_createCopyPattern.createPublicPattern)(appContext, modernConfig, chain);
34
32
  chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
@@ -31,6 +31,7 @@ __export(adapterBasic_exports, {
31
31
  builderPluginAdapterBasic: () => builderPluginAdapterBasic
32
32
  });
33
33
  module.exports = __toCommonJS(adapterBasic_exports);
34
+ var import_path = __toESM(require("path"));
34
35
  const builderPluginAdapterBasic = () => ({
35
36
  name: "builder-plugin-adapter-modern-basic",
36
37
  setup(api) {
@@ -54,6 +55,7 @@ const builderPluginAdapterBasic = () => ({
54
55
  chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
55
56
  chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
56
57
  }
58
+ chain.resolve.modules.add("node_modules").add(import_path.default.join(api.context.rootPath, "node_modules"));
57
59
  });
58
60
  }
59
61
  });
@@ -76,22 +76,6 @@ function initSourceConfig(config, appContext, bundler) {
76
76
  }
77
77
  return include2;
78
78
  }).concat(defaultInclude);
79
- const root = (0, import_utils.findMonorepoRoot)(appContext2.appDirectory);
80
- if (!root) {
81
- return transformInclude;
82
- }
83
- const modernjsMonorepo = (0, import_utils.isModernjsMonorepo)(root);
84
- if (modernjsMonorepo) {
85
- const paths = import_utils.globby.sync(import_path.posix.join(root, "features", "**", "package.json"), {
86
- ignore: [
87
- "**/node_modules/**/*"
88
- ]
89
- }).map((pathname) => (0, import_path.dirname)(pathname) + import_path.sep);
90
- return [
91
- ...paths,
92
- ...transformInclude
93
- ];
94
- }
95
79
  return transformInclude;
96
80
  }
97
81
  function createBuilderModuleScope(config2) {
@@ -257,13 +257,11 @@ function analyze_default(param) {
257
257
  return _ts_generator(this, function(_state2) {
258
258
  isFirstCompile = param2.isFirstCompile;
259
259
  hookRunners2 = api.useHookRunners();
260
- if (process.stdout.isTTY || isFirstCompile) {
261
- hookRunners2.afterDev({
262
- isFirstCompile
263
- });
264
- if (isFirstCompile) {
265
- printInstructions(hookRunners2, appContext, normalizedConfig);
266
- }
260
+ hookRunners2.afterDev({
261
+ isFirstCompile
262
+ });
263
+ if (isFirstCompile) {
264
+ printInstructions(hookRunners2, appContext, normalizedConfig);
267
265
  }
268
266
  return [
269
267
  2
@@ -375,6 +375,9 @@ var walk = function() {
375
375
  });
376
376
  }
377
377
  }
378
+ if (isRoot && !finalRoute._component) {
379
+ throw new Error("The root layout component is required, make sure the routes/layout.tsx file exists.");
380
+ }
378
381
  if (isRoot && !oldVersion) {
379
382
  optimizedRoutes = optimizeRoute(finalRoute);
380
383
  return [
@@ -156,7 +156,7 @@ var fileSystemRoutes = function() {
156
156
  }
157
157
  var clientDataStr = clientData ? "&clientData=".concat(clientData) : "";
158
158
  if (nestedRoutesEntry) {
159
- return "?loaderId=".concat(loaderId).concat(clientDataStr, "&action=").concat(action, "&inline=").concat(inline, "&routeId=").concat(routeId);
159
+ return "?loaderId=".concat(loaderId).concat(clientDataStr, "&action=").concat(action ? slash(action) : action, "&inline=").concat(inline, "&routeId=").concat(routeId);
160
160
  }
161
161
  return "";
162
162
  };
@@ -1,6 +1,4 @@
1
1
  import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
- import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
3
- import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
4
2
  import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
5
3
  import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
6
4
  import path from "path";
@@ -12,13 +10,19 @@ var builderPluginAdpaterCopy = function(options) {
12
10
  name: "builder-plugin-adapter-rspack-copy",
13
11
  setup: function setup(api) {
14
12
  var publicPath;
15
- api.modifyRspackConfig(function(config) {
16
- var _config_builtins_copy, _config_builtins, _config_output;
17
- config.builtins = _object_spread_props(_object_spread({}, config.builtins || {}), {
18
- copy: {
19
- patterns: _to_consumable_array(((_config_builtins = config.builtins) === null || _config_builtins === void 0 ? void 0 : (_config_builtins_copy = _config_builtins.copy) === null || _config_builtins_copy === void 0 ? void 0 : _config_builtins_copy.patterns) || []).concat(_to_consumable_array(createConfigBuiltinCopy(options)))
20
- }
13
+ api.modifyBundlerChain(function(chain, param) {
14
+ var CHAIN_ID = param.CHAIN_ID;
15
+ chain.plugin(CHAIN_ID.PLUGIN.COPY).tap(function(args) {
16
+ var _args_;
17
+ return [
18
+ {
19
+ patterns: _to_consumable_array(((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || []).concat(_to_consumable_array(createConfigBuiltinCopy(options)))
20
+ }
21
+ ];
21
22
  });
23
+ });
24
+ api.modifyRspackConfig(function(config) {
25
+ var _config_output;
22
26
  publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
23
27
  });
24
28
  api.onDevCompileDone(/* @__PURE__ */ _async_to_generator(function() {
@@ -1,5 +1,4 @@
1
1
  import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
2
- import { join } from "path";
3
2
  import { createPublicPattern } from "./createCopyPattern";
4
3
  var builderPluginAdapterModern = function(options) {
5
4
  return {
@@ -8,7 +7,6 @@ var builderPluginAdapterModern = function(options) {
8
7
  var modernConfig = options.normalizedConfig, appContext = options.appContext;
9
8
  api.modifyWebpackChain(function(chain, param) {
10
9
  var CHAIN_ID = param.CHAIN_ID;
11
- chain.resolve.modules.add("node_modules").add(join(api.context.rootPath, "node_modules"));
12
10
  if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
13
11
  var defaultCopyPattern = createPublicPattern(appContext, modernConfig, chain);
14
12
  chain.plugin(CHAIN_ID.PLUGIN.COPY).tap(function(args) {
@@ -1,3 +1,4 @@
1
+ import path from "path";
1
2
  var builderPluginAdapterBasic = function() {
2
3
  return {
3
4
  name: "builder-plugin-adapter-modern-basic",
@@ -23,6 +24,7 @@ var builderPluginAdapterBasic = function() {
23
24
  chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
24
25
  chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
25
26
  }
27
+ chain.resolve.modules.add("node_modules").add(path.join(api.context.rootPath, "node_modules"));
26
28
  });
27
29
  }
28
30
  };
@@ -1,6 +1,6 @@
1
1
  import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
2
- import path, { dirname, isAbsolute, posix, sep } from "path";
3
- import { findExists, findMonorepoRoot, globby, isModernjsMonorepo } from "@modern-js/utils";
2
+ import path, { isAbsolute } from "path";
3
+ import { findExists } from "@modern-js/utils";
4
4
  function initHtmlConfig(config, appContext) {
5
5
  var createBuilderAppIcon = function createBuilderAppIcon2(config2, appContext2) {
6
6
  var configDir = config2.source.configDir;
@@ -43,21 +43,6 @@ function initSourceConfig(config, appContext, bundler) {
43
43
  }
44
44
  return include2;
45
45
  }).concat(defaultInclude);
46
- var root = findMonorepoRoot(appContext2.appDirectory);
47
- if (!root) {
48
- return transformInclude;
49
- }
50
- var modernjsMonorepo = isModernjsMonorepo(root);
51
- if (modernjsMonorepo) {
52
- var paths = globby.sync(posix.join(root, "features", "**", "package.json"), {
53
- ignore: [
54
- "**/node_modules/**/*"
55
- ]
56
- }).map(function(pathname) {
57
- return dirname(pathname) + sep;
58
- });
59
- return _to_consumable_array(paths).concat(_to_consumable_array(transformInclude));
60
- }
61
46
  return transformInclude;
62
47
  };
63
48
  var createBuilderModuleScope = function createBuilderModuleScope2(config2) {
@@ -114,13 +114,11 @@ var analyze_default = ({ bundler }) => ({
114
114
  });
115
115
  builder.onDevCompileDone(async ({ isFirstCompile }) => {
116
116
  const hookRunners2 = api.useHookRunners();
117
- if (process.stdout.isTTY || isFirstCompile) {
118
- hookRunners2.afterDev({
119
- isFirstCompile
120
- });
121
- if (isFirstCompile) {
122
- printInstructions(hookRunners2, appContext, normalizedConfig);
123
- }
117
+ hookRunners2.afterDev({
118
+ isFirstCompile
119
+ });
120
+ if (isFirstCompile) {
121
+ printInstructions(hookRunners2, appContext, normalizedConfig);
124
122
  }
125
123
  });
126
124
  builder.onBeforeCreateCompiler(async ({ bundlerConfigs }) => {
@@ -246,6 +246,9 @@ const walk = async (dirname, rootDir, alias, entryName, isMainEntry, oldVersion)
246
246
  };
247
247
  }
248
248
  }
249
+ if (isRoot && !finalRoute._component) {
250
+ throw new Error("The root layout component is required, make sure the routes/layout.tsx file exists.");
251
+ }
249
252
  if (isRoot && !oldVersion) {
250
253
  const optimizedRoutes = optimizeRoute(finalRoute);
251
254
  return optimizedRoutes;
@@ -172,7 +172,7 @@ const fileSystemRoutes = async ({ routes, ssrMode, nestedRoutesEntry, entryName,
172
172
  }
173
173
  const clientDataStr = clientData ? `&clientData=${clientData}` : "";
174
174
  if (nestedRoutesEntry) {
175
- return `?loaderId=${loaderId}${clientDataStr}&action=${action}&inline=${inline}&routeId=${routeId}`;
175
+ return `?loaderId=${loaderId}${clientDataStr}&action=${action ? slash(action) : action}&inline=${inline}&routeId=${routeId}`;
176
176
  }
177
177
  return "";
178
178
  };
@@ -6,17 +6,21 @@ const builderPluginAdpaterCopy = (options) => ({
6
6
  name: "builder-plugin-adapter-rspack-copy",
7
7
  setup(api) {
8
8
  let publicPath;
9
+ api.modifyBundlerChain((chain, { CHAIN_ID }) => {
10
+ chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
11
+ var _args_;
12
+ return [
13
+ {
14
+ patterns: [
15
+ ...((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || [],
16
+ ...createConfigBuiltinCopy(options)
17
+ ]
18
+ }
19
+ ];
20
+ });
21
+ });
9
22
  api.modifyRspackConfig((config) => {
10
- var _config_builtins_copy, _config_builtins, _config_output;
11
- config.builtins = {
12
- ...config.builtins || {},
13
- copy: {
14
- patterns: [
15
- ...((_config_builtins = config.builtins) === null || _config_builtins === void 0 ? void 0 : (_config_builtins_copy = _config_builtins.copy) === null || _config_builtins_copy === void 0 ? void 0 : _config_builtins_copy.patterns) || [],
16
- ...createConfigBuiltinCopy(options)
17
- ]
18
- }
19
- };
23
+ var _config_output;
20
24
  publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
21
25
  });
22
26
  api.onDevCompileDone(async () => {
@@ -1,11 +1,9 @@
1
- import { join } from "path";
2
1
  import { createPublicPattern } from "./createCopyPattern";
3
2
  const builderPluginAdapterModern = (options) => ({
4
3
  name: "builder-plugin-adapter-modern",
5
4
  setup(api) {
6
5
  const { normalizedConfig: modernConfig, appContext } = options;
7
6
  api.modifyWebpackChain((chain, { CHAIN_ID }) => {
8
- chain.resolve.modules.add("node_modules").add(join(api.context.rootPath, "node_modules"));
9
7
  if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
10
8
  const defaultCopyPattern = createPublicPattern(appContext, modernConfig, chain);
11
9
  chain.plugin(CHAIN_ID.PLUGIN.COPY).tap((args) => {
@@ -1,3 +1,4 @@
1
+ import path from "path";
1
2
  const builderPluginAdapterBasic = () => ({
2
3
  name: "builder-plugin-adapter-modern-basic",
3
4
  setup(api) {
@@ -21,6 +22,7 @@ const builderPluginAdapterBasic = () => ({
21
22
  chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
22
23
  chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
23
24
  }
25
+ chain.resolve.modules.add("node_modules").add(path.join(api.context.rootPath, "node_modules"));
24
26
  });
25
27
  }
26
28
  });
@@ -1,5 +1,5 @@
1
- import path, { dirname, isAbsolute, posix, sep } from "path";
2
- import { findExists, findMonorepoRoot, globby, isModernjsMonorepo } from "@modern-js/utils";
1
+ import path, { isAbsolute } from "path";
2
+ import { findExists } from "@modern-js/utils";
3
3
  function initHtmlConfig(config, appContext) {
4
4
  const ICON_EXTENSIONS = [
5
5
  "png",
@@ -42,22 +42,6 @@ function initSourceConfig(config, appContext, bundler) {
42
42
  }
43
43
  return include2;
44
44
  }).concat(defaultInclude);
45
- const root = findMonorepoRoot(appContext2.appDirectory);
46
- if (!root) {
47
- return transformInclude;
48
- }
49
- const modernjsMonorepo = isModernjsMonorepo(root);
50
- if (modernjsMonorepo) {
51
- const paths = globby.sync(posix.join(root, "features", "**", "package.json"), {
52
- ignore: [
53
- "**/node_modules/**/*"
54
- ]
55
- }).map((pathname) => dirname(pathname) + sep);
56
- return [
57
- ...paths,
58
- ...transformInclude
59
- ];
60
- }
61
45
  return transformInclude;
62
46
  }
63
47
  function createBuilderModuleScope(config2) {
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.35.2-alpha.0",
18
+ "version": "2.36.0",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -72,24 +72,24 @@
72
72
  "es-module-lexer": "^1.1.0",
73
73
  "esbuild": "0.17.19",
74
74
  "@swc/helpers": "0.5.1",
75
- "@modern-js/builder": "2.35.1",
76
- "@modern-js/builder-plugin-esbuild": "2.35.1",
77
- "@modern-js/builder-plugin-node-polyfill": "2.35.1",
78
- "@modern-js/core": "2.35.1",
79
- "@modern-js/builder-shared": "2.35.1",
80
- "@modern-js/builder-webpack-provider": "2.35.1",
81
- "@modern-js/node-bundle-require": "2.35.1",
82
- "@modern-js/new-action": "2.35.1",
83
- "@modern-js/plugin-data-loader": "2.35.1",
84
- "@modern-js/prod-server": "2.35.1",
85
- "@modern-js/plugin": "2.35.1",
86
- "@modern-js/types": "2.35.1",
87
- "@modern-js/plugin-i18n": "2.35.1",
88
- "@modern-js/utils": "2.35.1",
89
- "@modern-js/server-core": "2.35.1",
90
- "@modern-js/plugin-lint": "2.35.1",
91
- "@modern-js/upgrade": "2.35.1",
92
- "@modern-js/server": "2.35.1"
75
+ "@modern-js/builder-plugin-esbuild": "2.36.0",
76
+ "@modern-js/builder": "2.36.0",
77
+ "@modern-js/builder-plugin-node-polyfill": "2.36.0",
78
+ "@modern-js/builder-shared": "2.36.0",
79
+ "@modern-js/builder-webpack-provider": "2.36.0",
80
+ "@modern-js/core": "2.36.0",
81
+ "@modern-js/new-action": "2.36.0",
82
+ "@modern-js/node-bundle-require": "2.36.0",
83
+ "@modern-js/plugin": "2.36.0",
84
+ "@modern-js/plugin-data-loader": "2.36.0",
85
+ "@modern-js/plugin-i18n": "2.36.0",
86
+ "@modern-js/plugin-lint": "2.36.0",
87
+ "@modern-js/prod-server": "2.36.0",
88
+ "@modern-js/server": "2.36.0",
89
+ "@modern-js/types": "2.36.0",
90
+ "@modern-js/upgrade": "2.36.0",
91
+ "@modern-js/utils": "2.36.0",
92
+ "@modern-js/server-core": "2.36.0"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@types/babel__traverse": "^7.14.2",
@@ -98,13 +98,13 @@
98
98
  "jest": "^29",
99
99
  "typescript": "^5",
100
100
  "webpack": "^5.88.1",
101
- "@scripts/build": "2.35.1",
102
- "@scripts/jest-config": "2.35.1",
103
- "@modern-js/builder-rspack-provider": "2.35.1",
104
- "@modern-js/builder-plugin-swc": "2.35.1"
101
+ "@modern-js/builder-plugin-swc": "2.36.0",
102
+ "@modern-js/builder-rspack-provider": "2.36.0",
103
+ "@scripts/jest-config": "2.36.0",
104
+ "@scripts/build": "2.36.0"
105
105
  },
106
106
  "peerDependencies": {
107
- "@modern-js/builder-rspack-provider": "^2.35.1"
107
+ "@modern-js/builder-rspack-provider": "^2.36.0"
108
108
  },
109
109
  "peerDependenciesMeta": {
110
110
  "@modern-js/builder-rspack-provider": {
@@ -1,54 +0,0 @@
1
- const JS_EXTENSIONS = [".js", ".ts", ".jsx", ".tsx"];
2
- const INDEX_FILE_NAME = "index";
3
- const APP_FILE_NAME = "App";
4
- const PAGES_DIR_NAME = "pages";
5
- const NESTED_ROUTES_DIR = "routes";
6
- const FILE_SYSTEM_ROUTES_FILE_NAME = "routes.js";
7
- const LOADER_EXPORT_NAME = "loader";
8
- const TEMP_LOADERS_DIR = "__loaders__";
9
- const ENTRY_POINT_FILE_NAME = "index.js";
10
- const ENTRY_BOOTSTRAP_FILE_NAME = "bootstrap.js";
11
- const FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP = /^\[(\S+)\]([*+?]?)$/;
12
- const FILE_SYSTEM_ROUTES_LAYOUT = "_layout";
13
- const FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT = "_app";
14
- const FILE_SYSTEM_ROUTES_INDEX = "index";
15
- const FILE_SYSTEM_ROUTES_IGNORED_REGEX = /\.(d|test|spec|e2e)\.(js|jsx|ts|tsx)$/;
16
- const HTML_PARTIALS_FOLDER = "html";
17
- const HTML_PARTIALS_EXTENSIONS = [".htm", ".html", ".ejs"];
18
- const FILE_SYSTEM_ROUTES_COMPONENTS_DIR = "internal_components";
19
- const NESTED_ROUTE = {
20
- LAYOUT_FILE: "layout",
21
- LAYOUT_LOADER_FILE: "layout.loader",
22
- PAGE_FILE: "page",
23
- PAGE_LOADER_FILE: "page.loader",
24
- LOADING_FILE: "loading",
25
- ERROR_FILE: "error",
26
- LOADER_FILE: "loader"
27
- };
28
- const APP_CONFIG_NAME = "config";
29
- const APP_INIT_EXPORTED = "init";
30
- const APP_INIT_IMPORTED = "appInit";
31
- export {
32
- APP_CONFIG_NAME,
33
- APP_FILE_NAME,
34
- APP_INIT_EXPORTED,
35
- APP_INIT_IMPORTED,
36
- ENTRY_BOOTSTRAP_FILE_NAME,
37
- ENTRY_POINT_FILE_NAME,
38
- FILE_SYSTEM_ROUTES_COMPONENTS_DIR,
39
- FILE_SYSTEM_ROUTES_DYNAMIC_REGEXP,
40
- FILE_SYSTEM_ROUTES_FILE_NAME,
41
- FILE_SYSTEM_ROUTES_GLOBAL_LAYOUT,
42
- FILE_SYSTEM_ROUTES_IGNORED_REGEX,
43
- FILE_SYSTEM_ROUTES_INDEX,
44
- FILE_SYSTEM_ROUTES_LAYOUT,
45
- HTML_PARTIALS_EXTENSIONS,
46
- HTML_PARTIALS_FOLDER,
47
- INDEX_FILE_NAME,
48
- JS_EXTENSIONS,
49
- LOADER_EXPORT_NAME,
50
- NESTED_ROUTE,
51
- NESTED_ROUTES_DIR,
52
- PAGES_DIR_NAME,
53
- TEMP_LOADERS_DIR
54
- };