From 10ba989cb5ace08a793cc35a2f1d3fe81a502ff0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20J=C3=A4gle?= Date: Wed, 25 Mar 2026 18:50:26 +0100 Subject: [PATCH] fix(cli): require Node >= 22 with clear error for styleText compatibility @clack/prompts 1.1.0 uses Node's built-in styleText (added in 21.7.0), which causes a SyntaxError on older Node versions. Add a bin wrapper that checks the Node version before importing the bundle, and add engines field. Co-Authored-By: Claude Opus 4.6 --- package.json | 2 +- packages/cli/bin/ade.mjs | 11 +++++++++++ packages/cli/package.json | 6 +++++- packages/cli/src/index.ts | 2 -- 4 files changed, 17 insertions(+), 4 deletions(-) create mode 100755 packages/cli/bin/ade.mjs diff --git a/package.json b/package.json index 687f80a..55582ad 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "type": "module", "bin": { - "ade": "packages/cli/dist/index.js" + "ade": "packages/cli/bin/ade.mjs" }, "publishConfig": { "access": "public" diff --git a/packages/cli/bin/ade.mjs b/packages/cli/bin/ade.mjs new file mode 100755 index 0000000..42527b5 --- /dev/null +++ b/packages/cli/bin/ade.mjs @@ -0,0 +1,11 @@ +#!/usr/bin/env node + +const [major] = process.versions.node.split(".").map(Number); +if (major < 22) { + console.error( + `ade requires Node.js >= 22 (current: ${process.versions.node}). Please upgrade Node.js.` + ); + process.exit(1); +} + +await import("../dist/index.js"); diff --git a/packages/cli/package.json b/packages/cli/package.json index a46a2fd..d4b6677 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -4,9 +4,10 @@ "types": "dist/index.d.ts", "type": "module", "bin": { - "ade": "dist/index.js" + "ade": "bin/ade.mjs" }, "files": [ + "bin", "dist" ], "publishConfig": { @@ -41,5 +42,8 @@ "typescript": "catalog:", "vitest": "catalog:" }, + "engines": { + "node": ">=22" + }, "version": "0.8.0" } diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index e8dd410..1bec9cd 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -1,5 +1,3 @@ -#!/usr/bin/env node - import { version } from "./version.js"; import { runSetup } from "./commands/setup.js"; import { runInstall } from "./commands/install.js";