From f88dc839e527127d7eca510eeea2ff1b40468311 Mon Sep 17 00:00:00 2001 From: Gen Zhang Date: Sun, 15 Feb 2026 20:14:26 +0000 Subject: [PATCH] refactor: derive optionalDependencies from root instead of hardcoding Instead of maintaining a hardcoded allowlist of native modules, copy all optionalDependencies from the root package.json and exclude only gemini-cli-devtools. Less brittle if new native deps are added in the future. --- scripts/prepare-npm-release.js | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/scripts/prepare-npm-release.js b/scripts/prepare-npm-release.js index 3ce6e03481..6775b23dfb 100644 --- a/scripts/prepare-npm-release.js +++ b/scripts/prepare-npm-release.js @@ -35,27 +35,10 @@ if (fs.existsSync(sourceBundleDir)) { process.exit(1); } -// Read native module versions from root package.json +// Inherit optionalDependencies from root package.json, excluding dev-only packages. const rootPkg = readJson('package.json'); -const rootOptional = rootPkg.optionalDependencies || {}; - -const nativeModules = [ - '@lydell/node-pty', - '@lydell/node-pty-darwin-arm64', - '@lydell/node-pty-darwin-x64', - '@lydell/node-pty-linux-x64', - '@lydell/node-pty-win32-arm64', - '@lydell/node-pty-win32-x64', - 'keytar', - 'node-pty', -]; - -const optionalDependencies = {}; -for (const mod of nativeModules) { - if (rootOptional[mod]) { - optionalDependencies[mod] = rootOptional[mod]; - } -} +const optionalDependencies = { ...(rootPkg.optionalDependencies || {}) }; +delete optionalDependencies['gemini-cli-devtools']; // Update @google/gemini-cli package.json for bundled npm release const cliPkgPath = 'packages/cli/package.json';