From ffa65795f42879ca720945f831c09dcadd45bb5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ad=C3=A1mek?= Date: Mon, 11 May 2026 15:55:13 +0200 Subject: [PATCH] fix: drop only-allow preinstall, enforce pnpm via devEngines The "preinstall": "npx only-allow pnpm" script ships in the published npm tarball and fires when downstream consumers install apify-cli via npm. In the `npm install -g apify-cli` flow the npx bootstrap of only-allow fails to put the binary on PATH in time, breaking the global install (exit 127 on Linux, exit 1 on Windows). The apify-cli issue was the user-visible symptom that first surfaced this bug. Adds devEngines.packageManager (pnpm@10.33.0, onFail:warn) alongside the existing devEngines.runtime so local devs still get the visible "use pnpm" signal. onFail:warn (not error) avoids tripping CI steps that indirectly invoke npm (pnpm v10 shells to npm for `pnpm version`, `pnpm config`, etc.). devEngines is checked at the package's own repo root, never on transitive installs, so downstream consumers are unaffected. Mirrors apify/apify-client-js#895 + #896 and apify/apify-sdk-js#606. --- package.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 93e12044f..3fdba27cc 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,6 @@ "clean": "rimraf dist", "build": "pnpm run clean && tsc && tsdown", "build-bundles": "bun run scripts/build-cli-bundles.ts", - "preinstall": "npx only-allow pnpm", "prepack": "pnpm run insert-cli-metadata && pnpm run build && pnpm run update-docs", "insert-cli-metadata": "tsx scripts/insert-cli-metadata.ts", "update-docs": "tsx scripts/generate-cli-docs.ts", @@ -150,9 +149,9 @@ }, "volta": { "node": "24.14.1", - "pnpm": "10.33.0" + "pnpm": "10.33.4" }, - "packageManager": "pnpm@10.33.0", + "packageManager": "pnpm@10.33.4", "devEngines": { "runtime": [ { @@ -165,7 +164,12 @@ "version": ">= 1.2.5", "onFail": "ignore" } - ] + ], + "packageManager": { + "name": "pnpm", + "version": "10.33.4", + "onFail": "warn" + } }, "lint-staged": { "*": "biome format --write --no-errors-on-unmatched",