From 4eac871bdbadd5aa8edfd104d767826fd6e2d466 Mon Sep 17 00:00:00 2001 From: Chris Kim <1074881+dy-dx@users.noreply.github.com> Date: Sun, 17 Mar 2024 12:46:40 -0400 Subject: [PATCH] fix: correctly detect the active Node js version during headless installation (#7801) close #5266 --------- Co-authored-by: Zoltan Kochan --- .changeset/nasty-goats-care.md | 6 ++++++ config/package-is-installable/src/index.ts | 2 +- .../src/filterLockfileByImportersAndEngine.ts | 6 +++--- pkg-manager/core/src/install/extendInstallOptions.ts | 4 ++-- pkg-manager/headless/src/index.ts | 2 +- pkg-manager/resolve-dependencies/src/resolveDependencies.ts | 2 +- .../resolve-dependencies/src/resolveDependencyTree.ts | 2 +- 7 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 .changeset/nasty-goats-care.md diff --git a/.changeset/nasty-goats-care.md b/.changeset/nasty-goats-care.md new file mode 100644 index 00000000000..508b75d49ff --- /dev/null +++ b/.changeset/nasty-goats-care.md @@ -0,0 +1,6 @@ +--- +"@pnpm/core": patch +"pnpm": patch +--- + +Correctly detect the active Node.js version during headless installation [#7801](https://github.com/pnpm/pnpm/pull/7801). diff --git a/config/package-is-installable/src/index.ts b/config/package-is-installable/src/index.ts index 7b97ff17de7..7ceb994ff94 100644 --- a/config/package-is-installable/src/index.ts +++ b/config/package-is-installable/src/index.ts @@ -90,4 +90,4 @@ export function checkPackage ( pnpm: options.pnpmVersion, }) ) -} \ No newline at end of file +} diff --git a/lockfile/filter-lockfile/src/filterLockfileByImportersAndEngine.ts b/lockfile/filter-lockfile/src/filterLockfileByImportersAndEngine.ts index 64e772876cb..9f9d664c403 100644 --- a/lockfile/filter-lockfile/src/filterLockfileByImportersAndEngine.ts +++ b/lockfile/filter-lockfile/src/filterLockfileByImportersAndEngine.ts @@ -26,7 +26,7 @@ export function filterLockfileByEngine ( export interface FilterLockfileOptions { currentEngine: { - nodeVersion: string + nodeVersion?: string pnpmVersion: string } engineStrict: boolean @@ -92,7 +92,7 @@ function pickPkgsWithAllDeps ( importerIdSet: Set, opts: { currentEngine: { - nodeVersion: string + nodeVersion?: string pnpmVersion: string } engineStrict: boolean @@ -119,7 +119,7 @@ function pkgAllDeps ( parentIsInstallable: boolean, opts: { currentEngine: { - nodeVersion: string + nodeVersion?: string pnpmVersion: string } engineStrict: boolean diff --git a/pkg-manager/core/src/install/extendInstallOptions.ts b/pkg-manager/core/src/install/extendInstallOptions.ts index ab593f37661..e63fe40add5 100644 --- a/pkg-manager/core/src/install/extendInstallOptions.ts +++ b/pkg-manager/core/src/install/extendInstallOptions.ts @@ -68,7 +68,7 @@ export interface StrictInstallOptions { onlyBuiltDependenciesFile?: string nodeExecPath?: string nodeLinker: 'isolated' | 'hoisted' | 'pnp' - nodeVersion: string + nodeVersion?: string packageExtensions: Record packageManager: { name: string @@ -186,7 +186,7 @@ const defaults = (opts: InstallOptions) => { }, lockfileDir: opts.lockfileDir ?? opts.dir ?? process.cwd(), lockfileOnly: false, - nodeVersion: process.version, + nodeVersion: opts.nodeVersion, nodeLinker: 'isolated', overrides: {}, ownLifecycleHooksStdio: 'inherit', diff --git a/pkg-manager/headless/src/index.ts b/pkg-manager/headless/src/index.ts index 404b7aecef9..f4ebc91c403 100644 --- a/pkg-manager/headless/src/index.ts +++ b/pkg-manager/headless/src/index.ts @@ -102,7 +102,7 @@ export interface HeadlessOptions { childConcurrency?: number currentLockfile?: Lockfile currentEngine: { - nodeVersion: string + nodeVersion?: string pnpmVersion: string } dedupeDirectDeps?: boolean diff --git a/pkg-manager/resolve-dependencies/src/resolveDependencies.ts b/pkg-manager/resolve-dependencies/src/resolveDependencies.ts index de94ca90221..45ed5944142 100644 --- a/pkg-manager/resolve-dependencies/src/resolveDependencies.ts +++ b/pkg-manager/resolve-dependencies/src/resolveDependencies.ts @@ -155,7 +155,7 @@ export interface ResolutionContext { preferWorkspacePackages?: boolean readPackageHook?: ReadPackageHook engineStrict: boolean - nodeVersion: string + nodeVersion?: string pnpmVersion: string registries: Registries resolutionMode?: 'highest' | 'time-based' | 'lowest-direct' diff --git a/pkg-manager/resolve-dependencies/src/resolveDependencyTree.ts b/pkg-manager/resolve-dependencies/src/resolveDependencyTree.ts index 0b89581d17e..789108e9d05 100644 --- a/pkg-manager/resolve-dependencies/src/resolveDependencyTree.ts +++ b/pkg-manager/resolve-dependencies/src/resolveDependencyTree.ts @@ -84,7 +84,7 @@ export interface ResolveDependenciesOptions { hooks: { readPackage?: ReadPackageHook } - nodeVersion: string + nodeVersion?: string registries: Registries patchedDependencies?: Record pnpmVersion: string