@modern-js/app-tools 2.57.1-alpha.2 → 2.57.1-beta.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 (60) hide show
  1. package/dist/cjs/builder/builder-webpack/index.js +1 -1
  2. package/dist/cjs/builder/generator/index.js +2 -2
  3. package/dist/cjs/builder/index.js +2 -2
  4. package/dist/cjs/commands/build.js +0 -19
  5. package/dist/cjs/commands/dev.js +0 -9
  6. package/dist/cjs/commands/index.js +8 -8
  7. package/dist/cjs/index.js +1 -1
  8. package/dist/cjs/plugins/analyze/index.js +3 -3
  9. package/dist/cjs/plugins/deploy/dependencies/index.js +0 -1
  10. package/dist/cjs/plugins/deploy/dependencies/utils.js +2 -10
  11. package/dist/cjs/plugins/deploy/platforms/netlify.js +3 -10
  12. package/dist/cjs/plugins/deploy/platforms/{netlify-handler.js → netlifyEntry.js} +1 -27
  13. package/dist/cjs/plugins/deploy/platforms/node.js +2 -9
  14. package/dist/cjs/utils/loadPlugins.js +1 -1
  15. package/dist/cjs/utils/register.js +22 -38
  16. package/dist/esm/builder/generator/getBuilderEnvironments.js +2 -0
  17. package/dist/esm/builder/generator/index.js +1 -1
  18. package/dist/esm/builder/index.js +2 -2
  19. package/dist/esm/builder/shared/builderPlugins/adapterBasic.js +1 -1
  20. package/dist/esm/commands/build.js +16 -9
  21. package/dist/esm/commands/dev.js +55 -37
  22. package/dist/esm/commands/index.js +6 -6
  23. package/dist/esm/index.js +1 -42
  24. package/dist/esm/plugins/analyze/index.js +3 -4
  25. package/dist/esm/plugins/deploy/dependencies/index.js +3 -2
  26. package/dist/esm/plugins/deploy/dependencies/utils.js +4 -1
  27. package/dist/esm/utils/createServer.js +1 -1
  28. package/dist/esm-node/builder/generator/getBuilderEnvironments.js +1 -1
  29. package/dist/esm-node/builder/generator/index.js +1 -1
  30. package/dist/esm-node/builder/index.js +2 -2
  31. package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.js +1 -1
  32. package/dist/esm-node/commands/build.js +3 -0
  33. package/dist/esm-node/commands/dev.js +24 -16
  34. package/dist/esm-node/commands/index.js +6 -6
  35. package/dist/esm-node/index.js +1 -17
  36. package/dist/esm-node/plugins/analyze/index.js +3 -4
  37. package/dist/esm-node/plugins/deploy/dependencies/index.js +2 -1
  38. package/dist/esm-node/plugins/deploy/dependencies/utils.js +4 -1
  39. package/dist/esm-node/utils/createServer.js +1 -1
  40. package/dist/types/builder/index.d.ts +1 -1
  41. package/dist/types/plugins/deploy/platforms/netlifyEntry.d.ts +2 -0
  42. package/package.json +10 -10
  43. package/dist/cjs/esm/esbuild-loader.mjs +0 -20
  44. package/dist/cjs/esm/register-esm.mjs +0 -65
  45. package/dist/cjs/esm/ts-node-loader.mjs +0 -21
  46. package/dist/cjs/esm/utils.mjs +0 -28
  47. package/dist/cjs/plugins/deploy/platforms/netlify-entry-cjs.js +0 -3
  48. package/dist/cjs/plugins/deploy/platforms/netlify-entry-mjs.js +0 -28
  49. package/dist/esm/custom-loader.mjs +0 -41
  50. package/dist/esm/register-esm.mjs +0 -22
  51. package/dist/esm-node/esm/esbuild-loader.js +0 -39
  52. package/dist/esm-node/esm/register-esm.js +0 -39
  53. package/dist/esm-node/esm/ts-node-loader.js +0 -42
  54. package/dist/types/esm/esbuild-loader.d.mts +0 -6
  55. package/dist/types/esm/register-esm.d.mts +0 -5
  56. package/dist/types/esm/ts-node-loader.d.mts +0 -6
  57. package/dist/types/esm/utils.d.mts +0 -6
  58. package/dist/types/plugins/deploy/platforms/netlify-entry-cjs.d.ts +0 -1
  59. package/dist/types/plugins/deploy/platforms/netlify-entry-mjs.d.ts +0 -1
  60. package/dist/types/plugins/deploy/platforms/netlify-handler.d.ts +0 -1
@@ -38,7 +38,7 @@ async function createWebpackBuilderForModern(options) {
38
38
  const { normalizedConfig } = options;
39
39
  if (normalizedConfig.tools.esbuild) {
40
40
  const { esbuild: esbuildOptions } = normalizedConfig.tools;
41
- const { pluginEsbuild } = await import("@modern-js/rsbuild-plugin-esbuild");
41
+ const { pluginEsbuild } = await Promise.resolve().then(() => __toESM(require("@modern-js/rsbuild-plugin-esbuild")));
42
42
  builder.addPlugins([
43
43
  pluginEsbuild(esbuildOptions)
44
44
  ]);
@@ -50,7 +50,7 @@ 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, builderPluginAdapterWorker } = await Promise.resolve().then(() => __toESM(require("../shared/builderPlugins")));
54
54
  builder.addPlugins([
55
55
  builderPluginAdapterBasic(),
56
56
  builderPluginAdapterSSR(options),
@@ -59,7 +59,7 @@ async function applyBuilderPlugins(builder, options) {
59
59
  ]);
60
60
  const { normalizedConfig } = options;
61
61
  if (!normalizedConfig.output.disableNodePolyfill) {
62
- const { pluginNodePolyfill } = await import("@rsbuild/plugin-node-polyfill");
62
+ const { pluginNodePolyfill } = await Promise.resolve().then(() => __toESM(require("@rsbuild/plugin-node-polyfill")));
63
63
  builder.addPlugins([
64
64
  pluginNodePolyfill()
65
65
  ]);
@@ -33,10 +33,10 @@ __export(builder_exports, {
33
33
  module.exports = __toCommonJS(builder_exports);
34
34
  async function createBuilderGenerator(bundler) {
35
35
  if (bundler === "rspack") {
36
- const { createRspackBuilderForModern } = await import("./builder-rspack/index.js");
36
+ const { createRspackBuilderForModern } = await Promise.resolve().then(() => __toESM(require("./builder-rspack")));
37
37
  return createRspackBuilderForModern;
38
38
  }
39
- const { createWebpackBuilderForModern } = await import("./builder-webpack/index.js");
39
+ const { createWebpackBuilderForModern } = await Promise.resolve().then(() => __toESM(require("./builder-webpack")));
40
40
  return createWebpackBuilderForModern;
41
41
  }
42
42
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
  var build_exports = {};
30
20
  __export(build_exports, {
@@ -46,15 +36,6 @@ const build = async (api, options) => {
46
36
  const appContext = api.useAppContext();
47
37
  const hookRunners = api.useHookRunners();
48
38
  await (0, import_loadPlugins.loadServerPlugins)(api, appContext.appDirectory, appContext.metaName);
49
- if (appContext.moduleType && appContext.moduleType === "module") {
50
- var _resolvedConfig_source1;
51
- const { registerEsm } = await import("../esm/register-esm.mjs");
52
- await registerEsm({
53
- appDir: appContext.appDirectory,
54
- distDir: appContext.distDirectory,
55
- alias: (_resolvedConfig_source1 = resolvedConfig.source) === null || _resolvedConfig_source1 === void 0 ? void 0 : _resolvedConfig_source1.alias
56
- });
57
- }
58
39
  await (0, import_register.registerCompiler)(appContext.appDirectory, appContext.distDirectory, resolvedConfig === null || resolvedConfig === void 0 ? void 0 : (_resolvedConfig_source = resolvedConfig.source) === null || _resolvedConfig_source === void 0 ? void 0 : _resolvedConfig_source.alias);
59
40
  const { apiOnly } = appContext;
60
41
  if (apiOnly) {
@@ -50,15 +50,6 @@ const dev = async (api, options, devServerOptions) => {
50
50
  let normalizedConfig = api.useResolvedConfigContext();
51
51
  const appContext = api.useAppContext();
52
52
  const hookRunners = api.useHookRunners();
53
- if (appContext.moduleType && appContext.moduleType === "module") {
54
- var _normalizedConfig_source1;
55
- const { registerEsm } = await import("../esm/register-esm.mjs");
56
- await registerEsm({
57
- appDir: appContext.appDirectory,
58
- distDir: appContext.distDirectory,
59
- alias: (_normalizedConfig_source1 = normalizedConfig.source) === null || _normalizedConfig_source1 === void 0 ? void 0 : _normalizedConfig_source1.alias
60
- });
61
- }
62
53
  await (0, import_register.registerCompiler)(appContext.appDirectory, appContext.distDirectory, normalizedConfig === null || normalizedConfig === void 0 ? void 0 : (_normalizedConfig_source = normalizedConfig.source) === null || _normalizedConfig_source === void 0 ? void 0 : _normalizedConfig_source.alias);
63
54
  normalizedConfig = {
64
55
  ...normalizedConfig,
@@ -44,7 +44,7 @@ const devCommand = async (program, api) => {
44
44
  const runner = api.useHookRunners();
45
45
  const devToolMetas = await runner.registerDev();
46
46
  const devProgram = program.command("dev").alias("start").usage("[options]").description(import_locale.i18n.t(import_locale.localeKeys.command.dev.describe)).option("-c --config <config>", import_locale.i18n.t(import_locale.localeKeys.command.shared.config)).option("-e --entry [entry...]", import_locale.i18n.t(import_locale.localeKeys.command.dev.entry)).option("--analyze", import_locale.i18n.t(import_locale.localeKeys.command.shared.analyze)).option("--api-only", import_locale.i18n.t(import_locale.localeKeys.command.dev.apiOnly)).option("--web-only", import_locale.i18n.t(import_locale.localeKeys.command.dev.webOnly)).action(async (options) => {
47
- const { dev } = await import("./dev.js");
47
+ const { dev } = await Promise.resolve().then(() => __toESM(require("./dev")));
48
48
  await dev(api, options);
49
49
  });
50
50
  for (const meta of devToolMetas) {
@@ -54,7 +54,7 @@ const devCommand = async (program, api) => {
54
54
  for (const subCmd of meta.subCommands) {
55
55
  devProgram.command(subCmd).action(async (options = {}) => {
56
56
  const { appDirectory } = api.useAppContext();
57
- const { isTypescript } = await import("@modern-js/utils");
57
+ const { isTypescript } = await Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
58
58
  await runner.beforeDevTask(meta);
59
59
  await meta.action(options, {
60
60
  isTsProject: isTypescript(appDirectory)
@@ -67,7 +67,7 @@ const buildCommand = async (program, api) => {
67
67
  const runner = api.useHookRunners();
68
68
  const platformBuilders = await runner.registerBuildPlatform();
69
69
  const buildProgram = program.command("build").usage("[options]").description(import_locale.i18n.t(import_locale.localeKeys.command.build.describe)).option("-c --config <config>", import_locale.i18n.t(import_locale.localeKeys.command.shared.config)).option("--analyze", import_locale.i18n.t(import_locale.localeKeys.command.shared.analyze)).action(async (options) => {
70
- const { build } = await import("./build.js");
70
+ const { build } = await Promise.resolve().then(() => __toESM(require("./build")));
71
71
  await build(api, options);
72
72
  });
73
73
  for (const platformBuilder of platformBuilders) {
@@ -75,7 +75,7 @@ const buildCommand = async (program, api) => {
75
75
  for (const platform of platforms) {
76
76
  buildProgram.command(platform).action(async () => {
77
77
  const { appDirectory } = api.useAppContext();
78
- const { isTypescript } = await import("@modern-js/utils");
78
+ const { isTypescript } = await Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
79
79
  await runner.beforeBuildPlatform(platformBuilders);
80
80
  await platformBuilder.build(platform, {
81
81
  isTsProject: isTypescript(appDirectory)
@@ -86,17 +86,17 @@ const buildCommand = async (program, api) => {
86
86
  };
87
87
  const serverCommand = (program, api) => {
88
88
  program.command("serve").usage("[options]").description(import_locale.i18n.t(import_locale.localeKeys.command.serve.describe)).option("--api-only", import_locale.i18n.t(import_locale.localeKeys.command.dev.apiOnly)).option("-c --config <config>", import_locale.i18n.t(import_locale.localeKeys.command.shared.config)).action(async () => {
89
- const { start } = await import("./serve.js");
89
+ const { start } = await Promise.resolve().then(() => __toESM(require("./serve")));
90
90
  await start(api);
91
91
  });
92
92
  };
93
93
  const deployCommand = (program, api) => {
94
94
  program.command("deploy").usage("[options]").option("-c --config <config>", import_locale.i18n.t(import_locale.localeKeys.command.shared.config)).option("-s --skip-build", import_locale.i18n.t(import_locale.localeKeys.command.shared.skipBuild)).description(import_locale.i18n.t(import_locale.localeKeys.command.deploy.describe)).action(async (options) => {
95
95
  if (!options.skipBuild) {
96
- const { build } = await import("./build.js");
96
+ const { build } = await Promise.resolve().then(() => __toESM(require("./build")));
97
97
  await build(api);
98
98
  }
99
- const { deploy } = await import("./deploy.js");
99
+ const { deploy } = await Promise.resolve().then(() => __toESM(require("./deploy")));
100
100
  await deploy(api, options);
101
101
  process.exit(0);
102
102
  });
@@ -111,7 +111,7 @@ const newCommand = (program, locale) => {
111
111
  };
112
112
  const inspectCommand = (program, api) => {
113
113
  program.command("inspect").description("inspect the internal configs").option(`--env <env>`, import_locale.i18n.t(import_locale.localeKeys.command.inspect.env), "development").option("--output <output>", import_locale.i18n.t(import_locale.localeKeys.command.inspect.output), "/").option("--verbose", import_locale.i18n.t(import_locale.localeKeys.command.inspect.verbose)).option("-c --config <config>", import_locale.i18n.t(import_locale.localeKeys.command.shared.config)).action(async (options) => {
114
- const { inspect } = await import("./inspect.js");
114
+ const { inspect } = await Promise.resolve().then(() => __toESM(require("./inspect")));
115
115
  inspect(api, options);
116
116
  });
117
117
  };
package/dist/cjs/index.js CHANGED
@@ -139,7 +139,7 @@ const appTools = (options = {
139
139
  async fileChange(e) {
140
140
  const { filename, eventType, isPrivate } = e;
141
141
  if (!isPrivate && (eventType === "change" || eventType === "unlink")) {
142
- const { closeServer } = await import("./utils/createServer");
142
+ const { closeServer } = await Promise.resolve().then(() => __toESM(require("./utils/createServer")));
143
143
  await closeServer();
144
144
  await (0, import_restart.restart)(api.useHookRunners(), filename);
145
145
  }
@@ -77,9 +77,9 @@ var analyze_default = ({ bundler }) => ({
77
77
  return;
78
78
  }
79
79
  const [{ getBundleEntry }, { getServerRoutes }, { getHtmlTemplate }] = await Promise.all([
80
- import("./getBundleEntry.js"),
81
- import("./getServerRoutes.js"),
82
- import("./getHtmlTemplate.js")
80
+ Promise.resolve().then(() => __toESM(require("./getBundleEntry"))),
81
+ Promise.resolve().then(() => __toESM(require("./getServerRoutes"))),
82
+ Promise.resolve().then(() => __toESM(require("./getHtmlTemplate")))
83
83
  ]);
84
84
  const { entrypoints } = await hookRunners.modifyEntrypoints({
85
85
  entrypoints: await getBundleEntry(hookRunners, appContext, resolvedConfig)
@@ -212,7 +212,6 @@ const handleDependencies = async ({ appDir, serverRootDir, includeEntries, trace
212
212
  name: `${projectPkgJson.name || "modernjs-project"}-prod`,
213
213
  version: projectPkgJson.version || "0.0.0",
214
214
  private: true,
215
- type: projectPkgJson.type || "commonjs",
216
215
  dependencies: Object.fromEntries([
217
216
  ...Object.values(tracedPackages).map((pkg) => [
218
217
  pkg.name,
@@ -142,16 +142,8 @@ const traceFiles = async (entryFiles, serverRootDir, base = "/") => {
142
142
  return await (0, import_nft.nodeFileTrace)(entryFiles, {
143
143
  base,
144
144
  processCwd: serverRootDir,
145
- resolve: async (id, parent, job, isCjs) => {
146
- if (id.startsWith("@modern-js/prod-server")) {
147
- return require.resolve(id, {
148
- paths: [
149
- require.resolve("@modern-js/app-tools")
150
- ]
151
- });
152
- } else {
153
- return (0, import_nft.resolve)(id, parent, job, isCjs);
154
- }
145
+ analysis: {
146
+ evaluatePureExpressions: false
155
147
  }
156
148
  });
157
149
  };
@@ -50,13 +50,11 @@ async function cleanDistDirectory(dir) {
50
50
  }
51
51
  }
52
52
  const createNetlifyPreset = (appContext, modernConfig, needModernServer) => {
53
- const { appDirectory, distDirectory, entrypoints, serverPlugins, moduleType } = appContext;
54
- const isEsmProject = moduleType === "module";
53
+ const { appDirectory, distDirectory, entrypoints, serverPlugins } = appContext;
55
54
  const plugins = serverPlugins.map((plugin) => plugin.name);
56
55
  const netlifyOutput = import_node_path.default.join(appDirectory, ".netlify");
57
56
  const funcsDirectory = import_node_path.default.join(netlifyOutput, "functions");
58
57
  const entryFilePath = import_node_path.default.join(funcsDirectory, "index.js");
59
- const handlerFilePath = import_node_path.default.join(funcsDirectory, "netlify-handler.js");
60
58
  return {
61
59
  async prepare() {
62
60
  await import_utils.fs.remove(netlifyOutput);
@@ -116,15 +114,10 @@ const createNetlifyPreset = (appContext, modernConfig, needModernServer) => {
116
114
  const pluginsCode = `[${plugins.map((plugin, index) => {
117
115
  return `plugin_${index}()`;
118
116
  }).join(",")}]`;
119
- let entryCode = (await import_utils.fs.readFile(import_node_path.default.join(__dirname, "./netlify-handler.js"))).toString();
117
+ let entryCode = (await import_utils.fs.readFile(import_node_path.default.join(__dirname, "./netlifyEntry.js"))).toString();
120
118
  const serverAppContext = (0, import_utils2.serverAppContenxtTemplate)(appContext);
121
119
  entryCode = entryCode.replace("p_genPluginImportsCode", pluginImportCode).replace("p_ROUTE_SPEC_FILE", `"${import_utils.ROUTE_SPEC_FILE}"`).replace("p_dynamicProdOptions", JSON.stringify(dynamicProdOptions)).replace("p_plugins", pluginsCode).replace("p_sharedDirectory", serverAppContext.sharedDirectory).replace("p_apiDirectory", serverAppContext.apiDirectory).replace("p_lambdaDirectory", serverAppContext.lambdaDirectory);
122
- await import_utils.fs.writeFile(handlerFilePath, entryCode);
123
- if (isEsmProject) {
124
- await import_utils.fs.copy(import_node_path.default.join(__dirname, "./netlify-entry-mjs.js"), entryFilePath);
125
- } else {
126
- await import_utils.fs.copy(import_node_path.default.join(__dirname, "./netlify-entry-cjs.js"), entryFilePath);
127
- }
120
+ await import_utils.fs.writeFile(entryFilePath, entryCode);
128
121
  },
129
122
  async end() {
130
123
  if (process.env.NODE_ENV !== "development") {
@@ -1,26 +1,4 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var netlify_handler_exports = {};
20
- __export(netlify_handler_exports, {
21
- createHandler: () => createHandler
22
- });
23
- module.exports = __toCommonJS(netlify_handler_exports);
24
2
  const fs = require("node:fs/promises");
25
3
  const path = require("node:path");
26
4
  const { createNetlifyFunction } = require("@modern-js/prod-server/netlify");
@@ -75,13 +53,9 @@ async function createHandler() {
75
53
  return requestHandler;
76
54
  }
77
55
  createHandler();
78
- exports.handler = async (request, context) => {
56
+ module.exports.default = async (request, context) => {
79
57
  if (!requestHandler) {
80
58
  await createHandler();
81
59
  }
82
60
  return requestHandler(request, context);
83
61
  };
84
- // Annotate the CommonJS export names for ESM import in node:
85
- 0 && (module.exports = {
86
- createHandler
87
- });
@@ -36,8 +36,7 @@ var import_utils = require("@modern-js/utils");
36
36
  var import_utils2 = require("../utils");
37
37
  var import_dependencies = require("../dependencies");
38
38
  const createNodePreset = (appContext, config) => {
39
- const { appDirectory, distDirectory, serverPlugins, moduleType } = appContext;
40
- const isEsmProject = moduleType === "module";
39
+ const { appDirectory, distDirectory, serverPlugins } = appContext;
41
40
  const plugins = serverPlugins.map((plugin) => plugin.name);
42
41
  const outputDirectory = import_node_path.default.join(appDirectory, ".output");
43
42
  const staticDirectory = import_node_path.default.join(outputDirectory, "static");
@@ -73,13 +72,7 @@ const createNodePreset = (appContext, config) => {
73
72
  let entryCode = (await import_utils.fs.readFile(import_node_path.default.join(__dirname, "./nodeEntry.js"))).toString();
74
73
  const serverAppContext = (0, import_utils2.serverAppContenxtTemplate)(appContext);
75
74
  entryCode = entryCode.replace("p_genPluginImportsCode", pluginImportCode).replace("p_ROUTE_SPEC_FILE", `"${import_utils.ROUTE_SPEC_FILE}"`).replace("p_dynamicProdOptions", JSON.stringify(dynamicProdOptions)).replace("p_plugins", pluginsCode).replace("p_sharedDirectory", serverAppContext.sharedDirectory).replace("p_apiDirectory", serverAppContext.apiDirectory).replace("p_lambdaDirectory", serverAppContext.lambdaDirectory);
76
- if (isEsmProject) {
77
- const cjsEntryFilePath = import_node_path.default.join(outputDirectory, "index.cjs");
78
- await import_utils.fs.writeFile(cjsEntryFilePath, entryCode);
79
- await import_utils.fs.writeFile(entryFilePath, `import('./index.cjs');`);
80
- } else {
81
- await import_utils.fs.writeFile(entryFilePath, entryCode);
82
- }
75
+ await import_utils.fs.writeFile(entryFilePath, entryCode);
83
76
  },
84
77
  async end() {
85
78
  console.log("Static directory:", import_utils.chalk.blue(import_node_path.default.relative(appDirectory, staticDirectory)));
@@ -37,7 +37,7 @@ async function getServerPlugins(api, metaName = "modern-js") {
37
37
  }
38
38
  async function loadServerPlugins(api, appDirectory, metaName) {
39
39
  const plugins = await getServerPlugins(api, metaName);
40
- const instances = await (0, import_prod_server.loadServerPlugins)(plugins, appDirectory);
40
+ const instances = (0, import_prod_server.loadServerPlugins)(plugins, appDirectory);
41
41
  return instances;
42
42
  }
43
43
  // Annotate the CommonJS export names for ESM import in node:
@@ -33,14 +33,6 @@ __export(register_exports, {
33
33
  module.exports = __toCommonJS(register_exports);
34
34
  var import_node_path = __toESM(require("node:path"));
35
35
  var import_utils = require("@modern-js/utils");
36
- const registerEsbuild = async ({ isTsProject, tsConfig, distDir }) => {
37
- const esbuildRegister = await import("esbuild-register/dist/node");
38
- esbuildRegister.register({
39
- tsconfigRaw: isTsProject ? tsConfig : void 0,
40
- hookIgnoreNodeModules: true,
41
- hookMatcher: (fileName) => !fileName.startsWith(distDir)
42
- });
43
- };
44
36
  const registerCompiler = async (appDir = process.cwd(), distDir, alias) => {
45
37
  const TS_CONFIG_FILENAME = `tsconfig.json`;
46
38
  const tsconfigPath = import_node_path.default.resolve(appDir, TS_CONFIG_FILENAME);
@@ -69,40 +61,32 @@ const registerCompiler = async (appDir = process.cwd(), distDir, alias) => {
69
61
  if (isTsProject) {
70
62
  tsConfig = (0, import_utils.readTsConfigByFile)(tsconfigPath);
71
63
  }
72
- const { MODERN_NODE_LOADER } = process.env;
73
- if (MODERN_NODE_LOADER !== "esbuild") {
74
- try {
75
- const tsNode = await import("ts-node");
76
- const tsNodeOptions = tsConfig["ts-node"];
77
- if (isTsProject) {
78
- tsNode.register({
79
- project: tsconfigPath,
80
- scope: true,
81
- // for env.d.ts, https://www.npmjs.com/package/ts-node#missing-types
82
- files: true,
83
- transpileOnly: true,
84
- ignore: [
85
- "(?:^|/)node_modules/",
86
- `(?:^|/)${import_node_path.default.relative(appDir, distDir)}/`
87
- ],
88
- ...tsNodeOptions
89
- });
90
- }
91
- } catch (error) {
92
- await registerEsbuild({
93
- isTsProject,
94
- tsConfig,
95
- distDir
64
+ try {
65
+ const tsNode = await Promise.resolve().then(() => __toESM(require("ts-node")));
66
+ const tsNodeOptions = tsConfig["ts-node"];
67
+ if (isTsProject) {
68
+ tsNode.register({
69
+ project: tsconfigPath,
70
+ scope: true,
71
+ // for env.d.ts, https://www.npmjs.com/package/ts-node#missing-types
72
+ files: true,
73
+ transpileOnly: true,
74
+ ignore: [
75
+ "(?:^|/)node_modules/",
76
+ `(?:^|/)${import_node_path.default.relative(appDir, distDir)}/`
77
+ ],
78
+ ...tsNodeOptions
96
79
  });
97
80
  }
98
- } else {
99
- await registerEsbuild({
100
- isTsProject,
101
- tsConfig,
102
- distDir
81
+ } catch (error) {
82
+ const esbuildRegister = await Promise.resolve().then(() => __toESM(require("esbuild-register/dist/node")));
83
+ esbuildRegister.register({
84
+ tsconfigRaw: isTsProject ? tsConfig : void 0,
85
+ hookIgnoreNodeModules: true,
86
+ hookMatcher: (fileName) => !fileName.startsWith(distDir)
103
87
  });
104
88
  }
105
- const tsConfigPaths = (await import("@modern-js/utils/tsconfig-paths")).default;
89
+ const tsConfigPaths = await Promise.resolve().then(() => __toESM(require("@modern-js/utils/tsconfig-paths")));
106
90
  if (await import_utils.fs.pathExists(appDir)) {
107
91
  const loaderRes = tsConfigPaths.loadConfig(appDir);
108
92
  if (loaderRes.resultType === "success") {
@@ -38,6 +38,8 @@ function getBuilderEnvironments(normalizedConfig, appContext) {
38
38
  var v = entries[entry1];
39
39
  serverEntries[entry1] = v.map(function(entry2) {
40
40
  return entry2.replace("index.jsx", "index.server.jsx");
41
+ }).map(function(entry2) {
42
+ return entry2.replace("bootstrap.jsx", "bootstrap.server.jsx");
41
43
  });
42
44
  }
43
45
  var environments = {
@@ -54,7 +54,7 @@ function _applyBuilderPlugins() {
54
54
  case 0:
55
55
  return [
56
56
  4,
57
- import("../shared/builderPlugins/index.js")
57
+ import("../shared/builderPlugins")
58
58
  ];
59
59
  case 1:
60
60
  _ref = _state.sent(), builderPluginAdapterBasic = _ref.builderPluginAdapterBasic, builderPluginAdapterHtml = _ref.builderPluginAdapterHtml, builderPluginAdapterSSR = _ref.builderPluginAdapterSSR, builderPluginAdapterWorker = _ref.builderPluginAdapterWorker;
@@ -16,7 +16,7 @@ function _createBuilderGenerator() {
16
16
  ];
17
17
  return [
18
18
  4,
19
- import("./builder-rspack/index.js")
19
+ import("./builder-rspack")
20
20
  ];
21
21
  case 1:
22
22
  createRspackBuilderForModern = _state.sent().createRspackBuilderForModern;
@@ -27,7 +27,7 @@ function _createBuilderGenerator() {
27
27
  case 2:
28
28
  return [
29
29
  4,
30
- import("./builder-webpack/index.js")
30
+ import("./builder-webpack")
31
31
  ];
32
32
  case 3:
33
33
  createWebpackBuilderForModern = _state.sent().createWebpackBuilderForModern;
@@ -27,7 +27,7 @@ function applyNodeCompat(isServiceWorker, chain) {
27
27
  ".node.ts",
28
28
  ".node.tsx",
29
29
  ".server.js",
30
- ".server.ts",
30
+ ".server.jsx",
31
31
  ".server.ts",
32
32
  ".server.tsx"
33
33
  ];
@@ -7,9 +7,10 @@ import { logger } from "@modern-js/utils";
7
7
  import { loadServerPlugins } from "../utils/loadPlugins";
8
8
  import { generateRoutes } from "../utils/routes";
9
9
  import { buildServerConfig } from "../utils/config";
10
+ import { registerCompiler } from "../utils/register";
10
11
  var build = function() {
11
12
  var _ref = _async_to_generator(function(api, options) {
12
- var resolvedConfig, appContext, hookRunners, apiOnly, appDirectory, distDirectory, serverConfigFile, distDirectory1, appDirectory1, serverConfigFile1;
13
+ var _resolvedConfig_source, resolvedConfig, appContext, hookRunners, apiOnly, appDirectory, distDirectory, serverConfigFile, distDirectory1, appDirectory1, serverConfigFile1;
13
14
  return _ts_generator(this, function(_state) {
14
15
  switch (_state.label) {
15
16
  case 0:
@@ -24,12 +25,18 @@ var build = function() {
24
25
  loadServerPlugins(api, appContext.appDirectory, appContext.metaName)
25
26
  ];
26
27
  case 1:
28
+ _state.sent();
29
+ return [
30
+ 4,
31
+ registerCompiler(appContext.appDirectory, appContext.distDirectory, resolvedConfig === null || resolvedConfig === void 0 ? void 0 : (_resolvedConfig_source = resolvedConfig.source) === null || _resolvedConfig_source === void 0 ? void 0 : _resolvedConfig_source.alias)
32
+ ];
33
+ case 2:
27
34
  _state.sent();
28
35
  apiOnly = appContext.apiOnly;
29
36
  if (!apiOnly)
30
37
  return [
31
38
  3,
32
- 6
39
+ 7
33
40
  ];
34
41
  appDirectory = appContext.appDirectory, distDirectory = appContext.distDirectory, serverConfigFile = appContext.serverConfigFile;
35
42
  return [
@@ -39,7 +46,7 @@ var build = function() {
39
46
  bundlerConfigs: void 0
40
47
  })
41
48
  ];
42
- case 2:
49
+ case 3:
43
50
  _state.sent();
44
51
  return [
45
52
  4,
@@ -49,13 +56,13 @@ var build = function() {
49
56
  configFile: serverConfigFile
50
57
  })
51
58
  ];
52
- case 3:
59
+ case 4:
53
60
  _state.sent();
54
61
  return [
55
62
  4,
56
63
  generateRoutes(appContext)
57
64
  ];
58
- case 4:
65
+ case 5:
59
66
  _state.sent();
60
67
  return [
61
68
  4,
@@ -64,12 +71,12 @@ var build = function() {
64
71
  stats: void 0
65
72
  })
66
73
  ];
67
- case 5:
74
+ case 6:
68
75
  _state.sent();
69
76
  return [
70
77
  2
71
78
  ];
72
- case 6:
79
+ case 7:
73
80
  resolvedConfig = _object_spread_props(_object_spread({}, resolvedConfig), {
74
81
  cliOptions: options
75
82
  });
@@ -83,7 +90,7 @@ var build = function() {
83
90
  configFile: serverConfigFile1
84
91
  })
85
92
  ];
86
- case 7:
93
+ case 8:
87
94
  _state.sent();
88
95
  logger.info("Starting production build...");
89
96
  if (!appContext.builder) {
@@ -93,7 +100,7 @@ var build = function() {
93
100
  4,
94
101
  appContext.builder.build()
95
102
  ];
96
- case 8:
103
+ case 9:
97
104
  _state.sent();
98
105
  return [
99
106
  2