diff --git a/.changeset/nasty-goats-care.md b/.changeset/nasty-goats-care.md new file mode 100644 index 0000000000..508b75d49f --- /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 7b97ff17de..7ceb994ff9 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 64e772876c..9f9d664c40 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 104e5c2e23..ec1cc72fe7 100644 --- a/pkg-manager/core/src/install/extendInstallOptions.ts +++ b/pkg-manager/core/src/install/extendInstallOptions.ts @@ -66,7 +66,7 @@ export interface StrictInstallOptions { onlyBuiltDependenciesFile?: string nodeExecPath?: string nodeLinker: 'isolated' | 'hoisted' | 'pnp' - nodeVersion: string + nodeVersion?: string packageExtensions: Record ignoredOptionalDependencies: string[] pnpmfile: string @@ -187,7 +187,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 71fca2074b..dc03322abd 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 0fe732bf95..2faa6d497e 100644 --- a/pkg-manager/resolve-dependencies/src/resolveDependencies.ts +++ b/pkg-manager/resolve-dependencies/src/resolveDependencies.ts @@ -154,7 +154,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 0b89581d17..789108e9d0 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