@modern-js/app-tools 2.58.3 → 2.59.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 (222) hide show
  1. package/dist/cjs/builder/generator/index.js +2 -3
  2. package/dist/cjs/builder/shared/builderPlugins/index.js +1 -3
  3. package/dist/cjs/commands/dev.js +1 -1
  4. package/dist/cjs/index.js +10 -3
  5. package/dist/cjs/plugins/analyze/getFileSystemEntry.js +50 -44
  6. package/dist/esm/builder/builder-rspack/adapterCopy.js +166 -0
  7. package/dist/esm/builder/builder-rspack/index.js +34 -0
  8. package/dist/esm/builder/builder-webpack/adapterModern.js +29 -0
  9. package/dist/esm/builder/builder-webpack/createCopyPattern.js +43 -0
  10. package/dist/esm/builder/builder-webpack/index.js +52 -0
  11. package/dist/esm/builder/generator/createBuilderProviderConfig.js +37 -0
  12. package/dist/esm/builder/generator/getBuilderEnvironments.js +81 -0
  13. package/dist/esm/builder/generator/index.js +93 -0
  14. package/dist/esm/builder/index.js +45 -0
  15. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +85 -0
  16. package/dist/esm/builder/shared/builderPlugins/adapterHtml.js +126 -0
  17. package/dist/esm/builder/shared/builderPlugins/adapterSSR.js +261 -0
  18. package/dist/esm/builder/shared/builderPlugins/index.js +3 -0
  19. package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +51 -0
  20. package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +37 -0
  21. package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.js +314 -0
  22. package/dist/esm/builder/shared/bundlerPlugins/index.js +3 -0
  23. package/dist/esm/builder/shared/createCopyInfo.js +14 -0
  24. package/dist/esm/builder/shared/index.js +3 -0
  25. package/dist/esm/builder/shared/loaders/serverModuleLoader.js +7 -0
  26. package/dist/esm/builder/shared/types.js +0 -0
  27. package/dist/esm/commands/build.js +140 -0
  28. package/dist/esm/commands/deploy.js +48 -0
  29. package/dist/esm/commands/dev.js +193 -0
  30. package/dist/esm/commands/index.js +411 -0
  31. package/dist/esm/commands/inspect.js +28 -0
  32. package/dist/esm/commands/serve.js +94 -0
  33. package/dist/esm/config/default.js +190 -0
  34. package/dist/esm/config/index.js +3 -0
  35. package/dist/esm/config/initialize/index.js +9 -0
  36. package/dist/esm/config/initialize/inits.js +89 -0
  37. package/dist/esm/config/legacy/createHtmlConfig.js +21 -0
  38. package/dist/esm/config/legacy/createOutputConfig.js +45 -0
  39. package/dist/esm/config/legacy/createSourceConfig.js +46 -0
  40. package/dist/esm/config/legacy/createToolsConfig.js +28 -0
  41. package/dist/esm/config/legacy/index.js +43 -0
  42. package/dist/esm/defineConfig.js +16 -0
  43. package/dist/esm/esm/esbuild-loader.mjs +20 -0
  44. package/dist/esm/esm/register-esm.mjs +66 -0
  45. package/dist/esm/esm/ts-node-loader.mjs +21 -0
  46. package/dist/esm/esm/utils.mjs +43 -0
  47. package/dist/esm/exports/server.js +4 -0
  48. package/dist/esm/hooks.js +34 -0
  49. package/dist/esm/index.js +246 -0
  50. package/dist/esm/locale/en.js +43 -0
  51. package/dist/esm/locale/index.js +12 -0
  52. package/dist/esm/locale/zh.js +43 -0
  53. package/dist/esm/plugins/analyze/constants.js +14 -0
  54. package/dist/esm/plugins/analyze/getBundleEntry.js +102 -0
  55. package/dist/esm/plugins/analyze/getFileSystemEntry.js +266 -0
  56. package/dist/esm/plugins/analyze/getHtmlTemplate.js +178 -0
  57. package/dist/esm/plugins/analyze/getServerRoutes.js +132 -0
  58. package/dist/esm/plugins/analyze/index.js +380 -0
  59. package/dist/esm/plugins/analyze/isDefaultExportFunction.js +49 -0
  60. package/dist/esm/plugins/analyze/templates.js +6 -0
  61. package/dist/esm/plugins/analyze/utils.js +101 -0
  62. package/dist/esm/plugins/deploy/dependencies/index.js +615 -0
  63. package/dist/esm/plugins/deploy/dependencies/utils.js +421 -0
  64. package/dist/esm/plugins/deploy/exports.js +4 -0
  65. package/dist/esm/plugins/deploy/index.js +135 -0
  66. package/dist/esm/plugins/deploy/platforms/netlify-entry.js +11 -0
  67. package/dist/esm/plugins/deploy/platforms/netlify-entry.mjs +1 -0
  68. package/dist/esm/plugins/deploy/platforms/netlify-handler.js +205 -0
  69. package/dist/esm/plugins/deploy/platforms/netlify.js +327 -0
  70. package/dist/esm/plugins/deploy/platforms/node-entry.js +108 -0
  71. package/dist/esm/plugins/deploy/platforms/node.js +161 -0
  72. package/dist/esm/plugins/deploy/platforms/platform.js +0 -0
  73. package/dist/esm/plugins/deploy/platforms/vercel-entry.js +11 -0
  74. package/dist/esm/plugins/deploy/platforms/vercel-entry.mjs +3 -0
  75. package/dist/esm/plugins/deploy/platforms/vercel-handler.js +206 -0
  76. package/dist/esm/plugins/deploy/platforms/vercel.js +261 -0
  77. package/dist/esm/plugins/deploy/utils.js +47 -0
  78. package/dist/esm/plugins/initialize/index.js +119 -0
  79. package/dist/esm/plugins/serverBuild.js +87 -0
  80. package/dist/esm/types/config/deploy.js +0 -0
  81. package/dist/esm/types/config/dev.js +0 -0
  82. package/dist/esm/types/config/experiments.js +0 -0
  83. package/dist/esm/types/config/html.js +0 -0
  84. package/dist/esm/types/config/index.js +1 -0
  85. package/dist/esm/types/config/output.js +0 -0
  86. package/dist/esm/types/config/performance.js +0 -0
  87. package/dist/esm/types/config/security.js +0 -0
  88. package/dist/esm/types/config/source.js +0 -0
  89. package/dist/esm/types/config/testing.js +0 -0
  90. package/dist/esm/types/config/tools.js +0 -0
  91. package/dist/esm/types/hooks.js +0 -0
  92. package/dist/esm/types/index.js +3 -0
  93. package/dist/esm/types/legacyConfig/deploy.js +0 -0
  94. package/dist/esm/types/legacyConfig/dev.js +0 -0
  95. package/dist/esm/types/legacyConfig/index.js +0 -0
  96. package/dist/esm/types/legacyConfig/output.js +0 -0
  97. package/dist/esm/types/legacyConfig/source.js +0 -0
  98. package/dist/esm/types/legacyConfig/testing.js +0 -0
  99. package/dist/esm/types/legacyConfig/tools.js +0 -0
  100. package/dist/esm/types/utils.js +0 -0
  101. package/dist/esm/utils/config.js +122 -0
  102. package/dist/esm/utils/createServer.js +58 -0
  103. package/dist/esm/utils/env.js +16 -0
  104. package/dist/esm/utils/generateWatchFiles.js +71 -0
  105. package/dist/esm/utils/getSelectedEntries.js +67 -0
  106. package/dist/esm/utils/loadPlugins.js +74 -0
  107. package/dist/esm/utils/printInstructions.js +32 -0
  108. package/dist/esm/utils/register.js +188 -0
  109. package/dist/esm/utils/restart.js +67 -0
  110. package/dist/esm/utils/routes.js +42 -0
  111. package/dist/esm/utils/types.js +0 -0
  112. package/dist/esm-node/builder/builder-rspack/adapterCopy.js +67 -0
  113. package/dist/esm-node/builder/builder-rspack/index.js +12 -0
  114. package/dist/esm-node/builder/builder-webpack/adapterModern.js +26 -0
  115. package/dist/esm-node/builder/builder-webpack/createCopyPattern.js +41 -0
  116. package/dist/esm-node/builder/builder-webpack/index.js +20 -0
  117. package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +44 -0
  118. package/dist/esm-node/builder/generator/getBuilderEnvironments.js +60 -0
  119. package/dist/esm-node/builder/generator/index.js +36 -0
  120. package/dist/esm-node/builder/index.js +11 -0
  121. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +48 -0
  122. package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.js +60 -0
  123. package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.js +151 -0
  124. package/dist/esm-node/builder/shared/builderPlugins/index.js +3 -0
  125. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +30 -0
  126. package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +31 -0
  127. package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.js +228 -0
  128. package/dist/esm-node/builder/shared/bundlerPlugins/index.js +3 -0
  129. package/dist/esm-node/builder/shared/createCopyInfo.js +14 -0
  130. package/dist/esm-node/builder/shared/index.js +3 -0
  131. package/dist/esm-node/builder/shared/loaders/serverModuleLoader.js +7 -0
  132. package/dist/esm-node/builder/shared/types.js +0 -0
  133. package/dist/esm-node/commands/build.js +64 -0
  134. package/dist/esm-node/commands/deploy.js +12 -0
  135. package/dist/esm-node/commands/dev.js +105 -0
  136. package/dist/esm-node/commands/index.js +92 -0
  137. package/dist/esm-node/commands/inspect.js +15 -0
  138. package/dist/esm-node/commands/serve.js +52 -0
  139. package/dist/esm-node/config/default.js +197 -0
  140. package/dist/esm-node/config/index.js +3 -0
  141. package/dist/esm-node/config/initialize/index.js +9 -0
  142. package/dist/esm-node/config/initialize/inits.js +79 -0
  143. package/dist/esm-node/config/legacy/createHtmlConfig.js +21 -0
  144. package/dist/esm-node/config/legacy/createOutputConfig.js +45 -0
  145. package/dist/esm-node/config/legacy/createSourceConfig.js +29 -0
  146. package/dist/esm-node/config/legacy/createToolsConfig.js +28 -0
  147. package/dist/esm-node/config/legacy/index.js +43 -0
  148. package/dist/esm-node/defineConfig.js +13 -0
  149. package/dist/esm-node/esm/esbuild-loader.mjs +20 -0
  150. package/dist/esm-node/esm/register-esm.mjs +66 -0
  151. package/dist/esm-node/esm/ts-node-loader.mjs +21 -0
  152. package/dist/esm-node/esm/utils.mjs +43 -0
  153. package/dist/esm-node/exports/server.js +4 -0
  154. package/dist/esm-node/hooks.js +34 -0
  155. package/dist/esm-node/index.js +131 -0
  156. package/dist/esm-node/locale/en.js +43 -0
  157. package/dist/esm-node/locale/index.js +12 -0
  158. package/dist/esm-node/locale/zh.js +43 -0
  159. package/dist/esm-node/plugins/analyze/constants.js +14 -0
  160. package/dist/esm-node/plugins/analyze/getBundleEntry.js +61 -0
  161. package/dist/esm-node/plugins/analyze/getFileSystemEntry.js +106 -0
  162. package/dist/esm-node/plugins/analyze/getHtmlTemplate.js +74 -0
  163. package/dist/esm-node/plugins/analyze/getServerRoutes.js +132 -0
  164. package/dist/esm-node/plugins/analyze/index.js +166 -0
  165. package/dist/esm-node/plugins/analyze/isDefaultExportFunction.js +47 -0
  166. package/dist/esm-node/plugins/analyze/templates.js +24 -0
  167. package/dist/esm-node/plugins/analyze/utils.js +68 -0
  168. package/dist/esm-node/plugins/deploy/dependencies/index.js +202 -0
  169. package/dist/esm-node/plugins/deploy/dependencies/utils.js +137 -0
  170. package/dist/esm-node/plugins/deploy/exports.js +4 -0
  171. package/dist/esm-node/plugins/deploy/index.js +44 -0
  172. package/dist/esm-node/plugins/deploy/platforms/netlify-entry.js +11 -0
  173. package/dist/esm-node/plugins/deploy/platforms/netlify-entry.mjs +1 -0
  174. package/dist/esm-node/plugins/deploy/platforms/netlify-handler.js +71 -0
  175. package/dist/esm-node/plugins/deploy/platforms/netlify.js +117 -0
  176. package/dist/esm-node/plugins/deploy/platforms/node-entry.js +44 -0
  177. package/dist/esm-node/plugins/deploy/platforms/node.js +72 -0
  178. package/dist/esm-node/plugins/deploy/platforms/platform.js +0 -0
  179. package/dist/esm-node/plugins/deploy/platforms/vercel-entry.js +11 -0
  180. package/dist/esm-node/plugins/deploy/platforms/vercel-entry.mjs +3 -0
  181. package/dist/esm-node/plugins/deploy/platforms/vercel-handler.js +72 -0
  182. package/dist/esm-node/plugins/deploy/platforms/vercel.js +129 -0
  183. package/dist/esm-node/plugins/deploy/utils.js +44 -0
  184. package/dist/esm-node/plugins/initialize/index.js +84 -0
  185. package/dist/esm-node/plugins/serverBuild.js +58 -0
  186. package/dist/esm-node/types/config/deploy.js +0 -0
  187. package/dist/esm-node/types/config/dev.js +0 -0
  188. package/dist/esm-node/types/config/experiments.js +0 -0
  189. package/dist/esm-node/types/config/html.js +0 -0
  190. package/dist/esm-node/types/config/index.js +1 -0
  191. package/dist/esm-node/types/config/output.js +0 -0
  192. package/dist/esm-node/types/config/performance.js +0 -0
  193. package/dist/esm-node/types/config/security.js +0 -0
  194. package/dist/esm-node/types/config/source.js +0 -0
  195. package/dist/esm-node/types/config/testing.js +0 -0
  196. package/dist/esm-node/types/config/tools.js +0 -0
  197. package/dist/esm-node/types/hooks.js +0 -0
  198. package/dist/esm-node/types/index.js +3 -0
  199. package/dist/esm-node/types/legacyConfig/deploy.js +0 -0
  200. package/dist/esm-node/types/legacyConfig/dev.js +0 -0
  201. package/dist/esm-node/types/legacyConfig/index.js +0 -0
  202. package/dist/esm-node/types/legacyConfig/output.js +0 -0
  203. package/dist/esm-node/types/legacyConfig/source.js +0 -0
  204. package/dist/esm-node/types/legacyConfig/testing.js +0 -0
  205. package/dist/esm-node/types/legacyConfig/tools.js +0 -0
  206. package/dist/esm-node/types/utils.js +0 -0
  207. package/dist/esm-node/utils/config.js +49 -0
  208. package/dist/esm-node/utils/createServer.js +26 -0
  209. package/dist/esm-node/utils/env.js +16 -0
  210. package/dist/esm-node/utils/generateWatchFiles.js +30 -0
  211. package/dist/esm-node/utils/getSelectedEntries.js +34 -0
  212. package/dist/esm-node/utils/loadPlugins.js +22 -0
  213. package/dist/esm-node/utils/printInstructions.js +11 -0
  214. package/dist/esm-node/utils/register.js +96 -0
  215. package/dist/esm-node/utils/restart.js +22 -0
  216. package/dist/esm-node/utils/routes.js +21 -0
  217. package/dist/esm-node/utils/types.js +0 -0
  218. package/dist/types/builder/shared/builderPlugins/index.d.ts +0 -1
  219. package/dist/types/index.d.ts +1 -1
  220. package/package.json +20 -20
  221. package/dist/cjs/builder/shared/builderPlugins/adapterWorker.js +0 -51
  222. package/dist/types/builder/shared/builderPlugins/adapterWorker.d.ts +0 -2
@@ -50,12 +50,11 @@ async function generateBuilder(options, bundlerType) {
50
50
  return builder;
51
51
  }
52
52
  async function applyBuilderPlugins(builder, options) {
53
- const { builderPluginAdapterBasic, builderPluginAdapterHtml, builderPluginAdapterSSR, builderPluginAdapterWorker } = await import("../shared/builderPlugins/index.js");
53
+ const { builderPluginAdapterBasic, builderPluginAdapterHtml, builderPluginAdapterSSR } = await import("../shared/builderPlugins/index.js");
54
54
  builder.addPlugins([
55
55
  builderPluginAdapterBasic(),
56
56
  builderPluginAdapterSSR(options),
57
- builderPluginAdapterHtml(options),
58
- builderPluginAdapterWorker()
57
+ builderPluginAdapterHtml(options)
59
58
  ]);
60
59
  const { normalizedConfig } = options;
61
60
  if (!normalizedConfig.output.disableNodePolyfill) {
@@ -18,11 +18,9 @@ module.exports = __toCommonJS(builderPlugins_exports);
18
18
  __reExport(builderPlugins_exports, require("./adapterBasic"), module.exports);
19
19
  __reExport(builderPlugins_exports, require("./adapterHtml"), module.exports);
20
20
  __reExport(builderPlugins_exports, require("./adapterSSR"), module.exports);
21
- __reExport(builderPlugins_exports, require("./adapterWorker"), module.exports);
22
21
  // Annotate the CommonJS export names for ESM import in node:
23
22
  0 && (module.exports = {
24
23
  ...require("./adapterBasic"),
25
24
  ...require("./adapterHtml"),
26
- ...require("./adapterSSR"),
27
- ...require("./adapterWorker")
25
+ ...require("./adapterSSR")
28
26
  });
@@ -90,7 +90,7 @@ const dev = async (api, options, devServerOptions) => {
90
90
  },
91
91
  appContext: {
92
92
  appDirectory,
93
- internalDirecory: appContext.internalDirectory,
93
+ internalDirectory: appContext.internalDirectory,
94
94
  apiDirectory: appContext.apiDirectory,
95
95
  lambdaDirectory: appContext.lambdaDirectory,
96
96
  sharedDirectory: appContext.sharedDirectory
package/dist/cjs/index.js CHANGED
@@ -53,6 +53,7 @@ var import_core = require("@modern-js/core");
53
53
  __reExport(src_exports, require("./defineConfig"), module.exports);
54
54
  __reExport(src_exports, require("./types"), module.exports);
55
55
  const appTools = (options = {
56
+ // default webpack to be compatible with original projects
56
57
  bundler: "webpack"
57
58
  }) => ({
58
59
  name: "@modern-js/app-tools",
@@ -69,10 +70,16 @@ const appTools = (options = {
69
70
  registerHook: import_hooks.hooks,
70
71
  usePlugins: [
71
72
  (0, import_initialize.default)({
72
- bundler: (options === null || options === void 0 ? void 0 : options.bundler) === "experimental-rspack" ? "rspack" : "webpack"
73
+ bundler: (options === null || options === void 0 ? void 0 : options.bundler) && [
74
+ "rspack",
75
+ "experimental-rspack"
76
+ ].includes(options.bundler) ? "rspack" : "webpack"
73
77
  }),
74
78
  (0, import_analyze.default)({
75
- bundler: (options === null || options === void 0 ? void 0 : options.bundler) === "experimental-rspack" ? "rspack" : "webpack"
79
+ bundler: (options === null || options === void 0 ? void 0 : options.bundler) && [
80
+ "rspack",
81
+ "experimental-rspack"
82
+ ].includes(options.bundler) ? "rspack" : "webpack"
76
83
  }),
77
84
  (0, import_serverBuild.default)(),
78
85
  (0, import_plugin_lint.lintPlugin)(),
@@ -139,7 +146,7 @@ const appTools = (options = {
139
146
  async fileChange(e) {
140
147
  const { filename, eventType, isPrivate } = e;
141
148
  if (!isPrivate && (eventType === "change" || eventType === "unlink")) {
142
- const { closeServer } = await import("./utils/createServer");
149
+ const { closeServer } = await import("./utils/createServer.js");
143
150
  await closeServer();
144
151
  await (0, import_restart.restart)(api.useHookRunners(), filename);
145
152
  }
@@ -53,51 +53,57 @@ const isBundleEntry = async (hookRunners, dir, enableCustomEntry) => {
53
53
  }
54
54
  return hasIndex(dir);
55
55
  };
56
- const scanDir = (hookRunners, dirs, enableCustomEntry) => Promise.all(dirs.map(async (dir) => {
57
- const indexFile = hasIndex(dir);
58
- const customBootstrap = (0, import_isDefaultExportFunction.isDefaultExportFunction)(indexFile) ? indexFile : false;
59
- const entryName = import_path.default.basename(dir);
60
- const customEntryFile = hasEntry(dir);
61
- const customServerEntry = hasServerEntry(dir);
62
- if (indexFile && !customBootstrap) {
63
- return {
64
- entryName,
65
- isMainEntry: false,
66
- entry: indexFile,
67
- absoluteEntryDir: import_path.default.resolve(dir),
68
- isAutoMount: false,
69
- customBootstrap
70
- };
71
- }
72
- const entryFile = (await hookRunners.checkEntryPoint({
73
- path: dir,
74
- entry: false
75
- })).entry;
76
- if (entryFile) {
77
- return {
78
- entryName,
79
- isMainEntry: false,
80
- entry: enableCustomEntry ? customEntryFile || entryFile : entryFile,
81
- customServerEntry,
82
- absoluteEntryDir: import_path.default.resolve(dir),
83
- isAutoMount: true,
84
- customBootstrap,
85
- customEntry: enableCustomEntry ? Boolean(customEntryFile) : false
86
- };
87
- }
88
- if (enableCustomEntry && customEntryFile) {
89
- return {
90
- entryName,
91
- isMainEntry: false,
92
- entry: customEntryFile,
93
- customServerEntry,
94
- absoluteEntryDir: import_path.default.resolve(dir),
95
- isAutoMount: false,
96
- customEntry: Boolean(customEntryFile)
97
- };
56
+ const scanDir = async (hookRunners, dirs, enableCustomEntry) => {
57
+ const entries = await Promise.all(dirs.map(async (dir) => {
58
+ const indexFile = hasIndex(dir);
59
+ const customBootstrap = (0, import_isDefaultExportFunction.isDefaultExportFunction)(indexFile) ? indexFile : false;
60
+ const entryName = import_path.default.basename(dir);
61
+ const customEntryFile = hasEntry(dir);
62
+ const customServerEntry = hasServerEntry(dir);
63
+ if (indexFile && !customBootstrap) {
64
+ return {
65
+ entryName,
66
+ isMainEntry: false,
67
+ entry: indexFile,
68
+ absoluteEntryDir: import_path.default.resolve(dir),
69
+ isAutoMount: false,
70
+ customBootstrap
71
+ };
72
+ }
73
+ const entryFile = (await hookRunners.checkEntryPoint({
74
+ path: dir,
75
+ entry: false
76
+ })).entry;
77
+ if (entryFile) {
78
+ return {
79
+ entryName,
80
+ isMainEntry: false,
81
+ entry: enableCustomEntry ? customEntryFile || entryFile : entryFile,
82
+ customServerEntry,
83
+ absoluteEntryDir: import_path.default.resolve(dir),
84
+ isAutoMount: true,
85
+ customBootstrap,
86
+ customEntry: enableCustomEntry ? Boolean(customEntryFile) : false
87
+ };
88
+ }
89
+ if (enableCustomEntry && customEntryFile) {
90
+ return {
91
+ entryName,
92
+ isMainEntry: false,
93
+ entry: customEntryFile,
94
+ customServerEntry,
95
+ absoluteEntryDir: import_path.default.resolve(dir),
96
+ isAutoMount: false,
97
+ customEntry: Boolean(customEntryFile)
98
+ };
99
+ }
100
+ return false;
101
+ })).then((entries2) => entries2.filter(Boolean));
102
+ if (entries.length === 0) {
103
+ throw Error("There is no valid entry point in the current project!");
98
104
  }
99
- throw Error("There is no valid entry point in the current project!");
100
- }));
105
+ return entries;
106
+ };
101
107
  const getFileSystemEntry = async (hookRunners, appContext, config) => {
102
108
  const { appDirectory } = appContext;
103
109
  const { source: { entriesDir, disableEntryDirs, enableCustomEntry } } = config;
@@ -0,0 +1,166 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
3
+ import { _ as _type_of } from "@swc/helpers/_/_type_of";
4
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
5
+ import path from "path";
6
+ import { logger, removeTailSlash } from "@modern-js/utils";
7
+ import fs from "@modern-js/utils/fs-extra";
8
+ import { createCopyInfo } from "../shared";
9
+ var builderPluginAdpaterCopy = function(options) {
10
+ return {
11
+ name: "builder-plugin-adapter-rspack-copy",
12
+ setup: function setup(api) {
13
+ var publicPath;
14
+ api.modifyBundlerChain(function(chain, param) {
15
+ var CHAIN_ID = param.CHAIN_ID;
16
+ chain.plugin(CHAIN_ID.PLUGIN.COPY).tap(function(args) {
17
+ var _args_;
18
+ return [
19
+ {
20
+ patterns: _to_consumable_array(((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || []).concat(_to_consumable_array(createConfigBuiltinCopy(options)))
21
+ }
22
+ ];
23
+ });
24
+ });
25
+ api.modifyRspackConfig(function(config) {
26
+ var _config_output;
27
+ publicPath = (_config_output = config.output) === null || _config_output === void 0 ? void 0 : _config_output.publicPath;
28
+ });
29
+ api.onDevCompileDone(/* @__PURE__ */ _async_to_generator(function() {
30
+ return _ts_generator(this, function(_state) {
31
+ switch (_state.label) {
32
+ case 0:
33
+ return [
34
+ 4,
35
+ transformHtmlFiles()
36
+ ];
37
+ case 1:
38
+ _state.sent();
39
+ return [
40
+ 2
41
+ ];
42
+ }
43
+ });
44
+ }));
45
+ api.onAfterBuild(/* @__PURE__ */ _async_to_generator(function() {
46
+ return _ts_generator(this, function(_state) {
47
+ switch (_state.label) {
48
+ case 0:
49
+ return [
50
+ 4,
51
+ transformHtmlFiles()
52
+ ];
53
+ case 1:
54
+ _state.sent();
55
+ return [
56
+ 2
57
+ ];
58
+ }
59
+ });
60
+ }));
61
+ function transformHtmlFiles() {
62
+ return _transformHtmlFiles.apply(this, arguments);
63
+ }
64
+ function _transformHtmlFiles() {
65
+ _transformHtmlFiles = /** transform public/*.html manaully */
66
+ _async_to_generator(function() {
67
+ var _normalizedConfig_output_distPath, normalizedConfig, publicDir, HTML_REGEXP, filepaths;
68
+ return _ts_generator(this, function(_state) {
69
+ switch (_state.label) {
70
+ case 0:
71
+ normalizedConfig = options.normalizedConfig;
72
+ publicDir = path.resolve(((_normalizedConfig_output_distPath = normalizedConfig.output.distPath) === null || _normalizedConfig_output_distPath === void 0 ? void 0 : _normalizedConfig_output_distPath.root) || "./dist", "./public");
73
+ if (!fs.existsSync(publicDir) || !fs.statSync(publicDir).isDirectory()) {
74
+ return [
75
+ 2
76
+ ];
77
+ }
78
+ HTML_REGEXP = /\.html?$/;
79
+ return [
80
+ 4,
81
+ fs.readdir(publicDir)
82
+ ];
83
+ case 1:
84
+ filepaths = _state.sent().map(function(file) {
85
+ return path.resolve(publicDir, file);
86
+ });
87
+ return [
88
+ 4,
89
+ Promise.all(filepaths.filter(function(file) {
90
+ return HTML_REGEXP.test(file);
91
+ }).map(function() {
92
+ var _ref = _async_to_generator(function(file) {
93
+ var content;
94
+ return _ts_generator(this, function(_state2) {
95
+ switch (_state2.label) {
96
+ case 0:
97
+ return [
98
+ 4,
99
+ fs.readFile(file, "utf-8")
100
+ ];
101
+ case 1:
102
+ content = _state2.sent();
103
+ if (!(publicPath && typeof publicPath === "string"))
104
+ return [
105
+ 3,
106
+ 3
107
+ ];
108
+ return [
109
+ 4,
110
+ fs.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash(publicPath)))
111
+ ];
112
+ case 2:
113
+ _state2.sent();
114
+ return [
115
+ 3,
116
+ 5
117
+ ];
118
+ case 3:
119
+ logger.warn("Expect get a string from `publicPath`, but receive `".concat(typeof publicPath === "undefined" ? "undefined" : _type_of(publicPath), "`."));
120
+ return [
121
+ 4,
122
+ fs.writeFile(file, content.replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash("/")))
123
+ ];
124
+ case 4:
125
+ _state2.sent();
126
+ _state2.label = 5;
127
+ case 5:
128
+ return [
129
+ 2
130
+ ];
131
+ }
132
+ });
133
+ });
134
+ return function(file) {
135
+ return _ref.apply(this, arguments);
136
+ };
137
+ }()))
138
+ ];
139
+ case 2:
140
+ _state.sent();
141
+ return [
142
+ 2
143
+ ];
144
+ }
145
+ });
146
+ });
147
+ return _transformHtmlFiles.apply(this, arguments);
148
+ }
149
+ }
150
+ };
151
+ };
152
+ function createConfigBuiltinCopy(options) {
153
+ var normalizedConfig = options.normalizedConfig, appContext = options.appContext;
154
+ var publicDir = createCopyInfo(appContext, normalizedConfig).publicDir;
155
+ return [
156
+ {
157
+ from: "**/*",
158
+ to: "public",
159
+ context: publicDir,
160
+ noErrorOnMissing: true
161
+ }
162
+ ];
163
+ }
164
+ export {
165
+ builderPluginAdpaterCopy
166
+ };
@@ -0,0 +1,34 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import { generateBuilder } from "../generator";
4
+ import { builderPluginAdpaterCopy } from "./adapterCopy";
5
+ function createRspackBuilderForModern(options) {
6
+ return _createRspackBuilderForModern.apply(this, arguments);
7
+ }
8
+ function _createRspackBuilderForModern() {
9
+ _createRspackBuilderForModern = _async_to_generator(function(options) {
10
+ var builder;
11
+ return _ts_generator(this, function(_state) {
12
+ switch (_state.label) {
13
+ case 0:
14
+ return [
15
+ 4,
16
+ generateBuilder(options, "rspack")
17
+ ];
18
+ case 1:
19
+ builder = _state.sent();
20
+ builder.addPlugins([
21
+ builderPluginAdpaterCopy(options)
22
+ ]);
23
+ return [
24
+ 2,
25
+ builder
26
+ ];
27
+ }
28
+ });
29
+ });
30
+ return _createRspackBuilderForModern.apply(this, arguments);
31
+ }
32
+ export {
33
+ createRspackBuilderForModern
34
+ };
@@ -0,0 +1,29 @@
1
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
2
+ import { createPublicPattern } from "./createCopyPattern";
3
+ var builderPluginAdapterModern = function(options) {
4
+ return {
5
+ name: "builder-plugin-adapter-modern",
6
+ setup: function setup(api) {
7
+ var modernConfig = options.normalizedConfig, appContext = options.appContext;
8
+ api.modifyWebpackChain(function(chain, param) {
9
+ var CHAIN_ID = param.CHAIN_ID;
10
+ if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
11
+ var defaultCopyPattern = createPublicPattern(appContext, modernConfig, chain);
12
+ chain.plugin(CHAIN_ID.PLUGIN.COPY).tap(function(args) {
13
+ var _args_;
14
+ return [
15
+ {
16
+ patterns: _to_consumable_array(((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || []).concat([
17
+ defaultCopyPattern
18
+ ])
19
+ }
20
+ ];
21
+ });
22
+ }
23
+ });
24
+ }
25
+ };
26
+ };
27
+ export {
28
+ builderPluginAdapterModern
29
+ };
@@ -0,0 +1,43 @@
1
+ import { removeTailSlash } from "@modern-js/utils";
2
+ import { createCopyInfo } from "../shared";
3
+ var minifiedJsRexExp = /\.min\.js/;
4
+ var info = function(file) {
5
+ return {
6
+ // If the file name ends with `.min.js`, we assume it's a compressed file.
7
+ // So we don't want copy-webpack-plugin to minify it.
8
+ // ref: https://github.com/webpack-contrib/copy-webpack-plugin#info
9
+ minimized: minifiedJsRexExp.test(file.sourceFilename)
10
+ };
11
+ };
12
+ function createPublicPattern(appContext, config, chain) {
13
+ var publicDir = createCopyInfo(appContext, config).publicDir;
14
+ return {
15
+ info,
16
+ from: "**/*",
17
+ to: "public",
18
+ context: publicDir,
19
+ noErrorOnMissing: true,
20
+ transform: function(content, absoluteFrom) {
21
+ if (!/\.html?$/.test(absoluteFrom)) {
22
+ return content;
23
+ }
24
+ return content.toString("utf8").replace(/<%=\s*assetPrefix\s*%>/g, removeTailSlash(chain.output.get("publicPath")));
25
+ }
26
+ };
27
+ }
28
+ function createUploadPattern(appContext, config) {
29
+ var uploadDir = createCopyInfo(appContext, config).uploadDir;
30
+ return {
31
+ // rspack copy info structure is inconsistent with webpack, it only used in webpack mode
32
+ // @ts-expect-error
33
+ info,
34
+ from: "**/*",
35
+ to: "upload",
36
+ context: uploadDir,
37
+ noErrorOnMissing: true
38
+ };
39
+ }
40
+ export {
41
+ createPublicPattern,
42
+ createUploadPattern
43
+ };
@@ -0,0 +1,52 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import { generateBuilder } from "../generator";
4
+ import { builderPluginAdapterModern } from "./adapterModern";
5
+ function createWebpackBuilderForModern(options) {
6
+ return _createWebpackBuilderForModern.apply(this, arguments);
7
+ }
8
+ function _createWebpackBuilderForModern() {
9
+ _createWebpackBuilderForModern = _async_to_generator(function(options) {
10
+ var builder, normalizedConfig, _normalizedConfig_tools, esbuildOptions, pluginEsbuild;
11
+ return _ts_generator(this, function(_state) {
12
+ switch (_state.label) {
13
+ case 0:
14
+ return [
15
+ 4,
16
+ generateBuilder(options, "webpack")
17
+ ];
18
+ case 1:
19
+ builder = _state.sent();
20
+ normalizedConfig = options.normalizedConfig;
21
+ if (!normalizedConfig.tools.esbuild)
22
+ return [
23
+ 3,
24
+ 3
25
+ ];
26
+ _normalizedConfig_tools = normalizedConfig.tools, esbuildOptions = _normalizedConfig_tools.esbuild;
27
+ return [
28
+ 4,
29
+ import("@modern-js/rsbuild-plugin-esbuild")
30
+ ];
31
+ case 2:
32
+ pluginEsbuild = _state.sent().pluginEsbuild;
33
+ builder.addPlugins([
34
+ pluginEsbuild(esbuildOptions)
35
+ ]);
36
+ _state.label = 3;
37
+ case 3:
38
+ builder.addPlugins([
39
+ builderPluginAdapterModern(options)
40
+ ]);
41
+ return [
42
+ 2,
43
+ builder
44
+ ];
45
+ }
46
+ });
47
+ });
48
+ return _createWebpackBuilderForModern.apply(this, arguments);
49
+ }
50
+ export {
51
+ createWebpackBuilderForModern
52
+ };
@@ -0,0 +1,37 @@
1
+ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
+ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
4
+ import { createUploadPattern } from "../builder-webpack/createCopyPattern";
5
+ function modifyOutputConfig(config, appContext) {
6
+ var defaultCopyPattern = createUploadPattern(appContext, config);
7
+ var copy = config.output.copy;
8
+ var copyOptions = Array.isArray(copy) ? copy : copy === null || copy === void 0 ? void 0 : copy.patterns;
9
+ var builderCopy = _to_consumable_array(copyOptions || []).concat([
10
+ defaultCopyPattern
11
+ ]);
12
+ config.output = _object_spread_props(_object_spread({}, config.output), {
13
+ copy: builderCopy
14
+ });
15
+ }
16
+ function createBuilderProviderConfig(resolveConfig, appContext) {
17
+ var htmlConfig = _object_spread({}, resolveConfig.html);
18
+ if (!htmlConfig.template) {
19
+ htmlConfig.templateByEntries = _object_spread({}, appContext.htmlTemplates, htmlConfig.templateByEntries);
20
+ }
21
+ var config = _object_spread_props(_object_spread({}, resolveConfig), {
22
+ plugins: [],
23
+ dev: _object_spread_props(_object_spread({}, resolveConfig.dev), {
24
+ port: appContext.port
25
+ }),
26
+ html: htmlConfig,
27
+ output: _object_spread_props(_object_spread({}, resolveConfig.output), {
28
+ // We need to do this in the app-tools prepare hook because some files will be generated into the dist directory in the analyze process
29
+ cleanDistPath: false
30
+ })
31
+ });
32
+ modifyOutputConfig(config, appContext);
33
+ return config;
34
+ }
35
+ export {
36
+ createBuilderProviderConfig
37
+ };
@@ -0,0 +1,81 @@
1
+ import { SERVICE_WORKER_ENVIRONMENT_NAME } from "@modern-js/uni-builder";
2
+ import { isProd, isSSR, isServiceWorker, isUseSSRBundle } from "@modern-js/utils";
3
+ function getBuilderEnvironments(normalizedConfig, appContext) {
4
+ var entries = {};
5
+ var _appContext_entrypoints = appContext.entrypoints, entrypoints = _appContext_entrypoints === void 0 ? [] : _appContext_entrypoints, checkedEntries = appContext.checkedEntries;
6
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
7
+ try {
8
+ for (var _iterator = entrypoints[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
9
+ var _step_value = _step.value, entryName = _step_value.entryName, internalEntry = _step_value.internalEntry, entry = _step_value.entry;
10
+ if (checkedEntries && !checkedEntries.includes(entryName)) {
11
+ continue;
12
+ }
13
+ var finalEntry = internalEntry || entry;
14
+ if (entryName in entries) {
15
+ entries[entryName].push(finalEntry);
16
+ } else {
17
+ entries[entryName] = [
18
+ finalEntry
19
+ ];
20
+ }
21
+ }
22
+ } catch (err) {
23
+ _didIteratorError = true;
24
+ _iteratorError = err;
25
+ } finally {
26
+ try {
27
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
28
+ _iterator.return();
29
+ }
30
+ } finally {
31
+ if (_didIteratorError) {
32
+ throw _iteratorError;
33
+ }
34
+ }
35
+ }
36
+ var serverEntries = {};
37
+ for (var entry1 in entries) {
38
+ var v = entries[entry1];
39
+ serverEntries[entry1] = v.map(function(entry2) {
40
+ return entry2.replace("index.jsx", "index.server.jsx");
41
+ }).map(function(entry2) {
42
+ return entry2.replace("bootstrap.jsx", "bootstrap.server.jsx");
43
+ });
44
+ }
45
+ var environments = {
46
+ web: {
47
+ output: {
48
+ target: "web"
49
+ },
50
+ source: {
51
+ entry: entries
52
+ }
53
+ }
54
+ };
55
+ var useNodeTarget = isProd() ? isUseSSRBundle(normalizedConfig) : isSSR(normalizedConfig);
56
+ if (useNodeTarget) {
57
+ environments.node = {
58
+ output: {
59
+ target: "node"
60
+ },
61
+ source: {
62
+ entry: serverEntries
63
+ }
64
+ };
65
+ }
66
+ var useWorkerTarget = isServiceWorker(normalizedConfig);
67
+ if (useWorkerTarget) {
68
+ environments[SERVICE_WORKER_ENVIRONMENT_NAME] = {
69
+ output: {
70
+ target: "web-worker"
71
+ },
72
+ source: {
73
+ entry: serverEntries
74
+ }
75
+ };
76
+ }
77
+ return environments;
78
+ }
79
+ export {
80
+ getBuilderEnvironments
81
+ };