diff --git a/src/cli-ts-node-commonjs.ts b/src/cli-ts-node-commonjs.ts index 4418dde3cf..fbde67cc82 100644 --- a/src/cli-ts-node-commonjs.ts +++ b/src/cli-ts-node-commonjs.ts @@ -1,2 +1,3 @@ -#!/usr/bin/env node --require ts-node/register +#!/usr/bin/env node +require("ts-node").register() import "./cli" diff --git a/src/cli-ts-node-esm.ts b/src/cli-ts-node-esm.ts index a389da1ebf..56206d3234 100644 --- a/src/cli-ts-node-esm.ts +++ b/src/cli-ts-node-esm.ts @@ -1,2 +1,20 @@ -#!/usr/bin/env node --loader ts-node/esm --no-warnings -import "./cli" +#!/usr/bin/env node +import { spawnSync } from "child_process" + +if ((process.env["NODE_OPTIONS"] || "").includes("--loader ts-node")) + require("./cli") +else + spawnSync(process.argv[0], process.argv.slice(1), { + stdio: "inherit", + env: { + ...process.env, + NODE_OPTIONS: [ + process.env["NODE_OPTIONS"], + "--loader ts-node/esm", + "--no-warnings", + ] + .filter((item) => !!item) + .join(" "), + }, + windowsHide: true, + })