cli: switch to using tsx and module loader register API

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2023-10-21 15:46:56 +02:00
parent 1df3c04025
commit 4ba4ac351f
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) {