Merge pull request #20721 from backstage/rugvip/tsx

cli: switch to using tsx and module loader register API
This commit is contained in:
Patrik Oldsberg
2023-10-22 11:37:13 +02:00
committed by GitHub
4 changed files with 52 additions and 40 deletions
@@ -27,11 +27,14 @@ import { isAbsolute as isAbsolutePath } from 'path';
import { paths } from '../paths';
import spawn from 'cross-spawn';
const [nodeMajor, nodeMinor] = process.versions.node.split('.').map(Number);
const supportsModuleLoaderRegister = nodeMajor >= 20 && nodeMinor >= 6;
const loaderArgs = [
'--require',
require.resolve('@esbuild-kit/cjs-loader'),
'--loader',
pathToFileURL(require.resolve('@esbuild-kit/esm-loader')).toString(), // Windows prefers a URL here
require.resolve('tsx/preflight'),
supportsModuleLoaderRegister ? '--import' : '--loader',
pathToFileURL(require.resolve('tsx')).toString(), // Windows prefers a URL here
];
export async function startBackendExperimental(options: BackendServeOptions) {