mirror of
https://github.com/pnpm/pnpm.git
synced 2026-05-16 12:51:45 -04:00
The `--latest` flag triggers the `installSome` code path, which built `currentBareSpecifiers` via `getAllDependenciesFromManifest()` — a function that excluded peer dependencies. The non-`--latest` path uses `getWantedDependencies()`, which honors `autoInstallPeers` and includes them. Pass `autoInstallPeers` through `getAllDependenciesFromManifest` so both paths agree. Closes #9900 Co-authored-by: Zoltan Kochan <z@kochan.io>
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import type {
|
|
Dependencies,
|
|
IncludedDependencies,
|
|
ProjectManifest,
|
|
} from '@pnpm/types'
|
|
|
|
import { getAllUniqueSpecs } from './getAllUniqueSpecs.js'
|
|
import { getSpecFromPackageManifest } from './getSpecFromPackageManifest.js'
|
|
|
|
export * from './convertEnginesRuntimeToDependencies.js'
|
|
export * from './getDependencyTypeFromManifest.js'
|
|
export * from './updateProjectManifestObject.js'
|
|
|
|
export { getAllUniqueSpecs, getSpecFromPackageManifest }
|
|
|
|
export function filterDependenciesByType (
|
|
manifest: ProjectManifest,
|
|
include: IncludedDependencies
|
|
): Dependencies {
|
|
return {
|
|
...(include.devDependencies ? manifest.devDependencies : {}),
|
|
...(include.dependencies ? manifest.dependencies : {}),
|
|
...(include.optionalDependencies ? manifest.optionalDependencies : {}),
|
|
}
|
|
}
|
|
|
|
export function getAllDependenciesFromManifest (
|
|
manifest: Pick<ProjectManifest, 'devDependencies' | 'dependencies' | 'optionalDependencies' | 'peerDependencies'>,
|
|
opts?: { autoInstallPeers?: boolean }
|
|
): Dependencies {
|
|
return {
|
|
...manifest.devDependencies,
|
|
...manifest.dependencies,
|
|
...manifest.optionalDependencies,
|
|
...(opts?.autoInstallPeers ? manifest.peerDependencies : {}),
|
|
}
|
|
}
|