diff --git a/.changeset/empty-singers-push.md b/.changeset/empty-singers-push.md new file mode 100644 index 00000000000..db05c97c911 --- /dev/null +++ b/.changeset/empty-singers-push.md @@ -0,0 +1,6 @@ +--- +'@modern-js/app-tools': patch +--- + +fix: restore dev server runtime stability for server config +fix: 处理 dev server runtime 的稳定性 diff --git a/packages/solutions/app-tools/src/commands/dev.ts b/packages/solutions/app-tools/src/commands/dev.ts index 89d20d6d82c..f1a79d27a0f 100644 --- a/packages/solutions/app-tools/src/commands/dev.ts +++ b/packages/solutions/app-tools/src/commands/dev.ts @@ -50,6 +50,7 @@ export const dev = async ( combinedAlias, { moduleType: appContext.moduleType, + preferTsNodeForServerRuntime: true, }, ); diff --git a/packages/solutions/app-tools/src/utils/register.ts b/packages/solutions/app-tools/src/utils/register.ts index 41d7d2887b1..dadd768f00b 100644 --- a/packages/solutions/app-tools/src/utils/register.ts +++ b/packages/solutions/app-tools/src/utils/register.ts @@ -13,6 +13,7 @@ type TsRuntimeRegisterMode = 'ts-node' | 'node-loader' | 'unsupported'; interface TsRuntimeSetupOptions { moduleType?: string; + preferTsNodeForServerRuntime?: boolean; } export const resolveTsRuntimeRegisterMode = ( @@ -50,7 +51,11 @@ export const setupTsRuntime = async ( const tsconfigPath = path.resolve(appDir, TS_CONFIG_FILENAME); const isTsProject = await fs.pathExists(tsconfigPath); const hasTsNode = isDepExists(appDir, 'ts-node'); - const registerMode = resolveTsRuntimeRegisterMode(hasTsNode); + const preferredRegisterMode = resolveTsRuntimeRegisterMode(hasTsNode); + const registerMode = + options.preferTsNodeForServerRuntime && hasTsNode + ? 'ts-node' + : preferredRegisterMode; if (!isTsProject) { return;