From c5dfc11ea7b8b33aa9e621b64b953c1d62a27989 Mon Sep 17 00:00:00 2001 From: Gilad S Date: Tue, 29 Mar 2022 08:29:02 +0300 Subject: [PATCH] fix: broken shebang parameters of `cli-ts-node-commonjs` and `cli-ts-node-esm` on some linux distros (#8821) Changed to nodejs workaround instead of relying on shebang parameters, as they work a bit differently on some linux distros, and using the "-S" parameter breaks the CLI on Windows Closes #8818 --- src/cli-ts-node-commonjs.ts | 3 ++- src/cli-ts-node-esm.ts | 22 ++++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) 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, + })