mirror of
https://github.com/pnpm/pnpm.git
synced 2026-07-26 07:27:20 -04:00
fix: dedupe direct deps when headless install is used
This commit is contained in:
5
.changeset/loud-lions-remember.md
Normal file
5
.changeset/loud-lions-remember.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/headless": patch
|
||||
---
|
||||
|
||||
Dedupe direct dependencies.
|
||||
@@ -95,4 +95,10 @@ test('dedupe direct dependencies', async () => {
|
||||
expect(fs.readdirSync('project-2/node_modules').sort()).toEqual(['is-odd'])
|
||||
await projects['project-3'].hasNot('is-negative')
|
||||
expect(fs.existsSync('project-3/node_modules')).toBeFalsy()
|
||||
|
||||
// Test the same with headless install
|
||||
await mutateModules(importers, await testDefaults({ allProjects, dedupeDirectDeps: true, frozenLockfile: true }))
|
||||
expect(fs.readdirSync('project-2/node_modules').sort()).toEqual(['is-odd'])
|
||||
await projects['project-3'].hasNot('is-negative')
|
||||
expect(fs.existsSync('project-3/node_modules')).toBeFalsy()
|
||||
})
|
||||
|
||||
@@ -340,7 +340,7 @@ export async function headlessInstall (opts: HeadlessOptions) {
|
||||
|
||||
await symlinkDirectDependencies({
|
||||
directDependenciesByImporterId: symlinkedDirectDependenciesByImporterId!,
|
||||
dedupe: opts.dedupeDirectDeps,
|
||||
dedupe: Boolean(opts.dedupeDirectDeps),
|
||||
filteredLockfile,
|
||||
lockfileDir,
|
||||
projects: selectedProjects,
|
||||
@@ -408,6 +408,7 @@ export async function headlessInstall (opts: HeadlessOptions) {
|
||||
/** Skip linking and due to no project manifest */
|
||||
if (!opts.ignorePackageManifest) {
|
||||
await symlinkDirectDependencies({
|
||||
dedupe: Boolean(opts.dedupeDirectDeps),
|
||||
directDependenciesByImporterId,
|
||||
filteredLockfile,
|
||||
lockfileDir,
|
||||
@@ -564,7 +565,7 @@ export async function headlessInstall (opts: HeadlessOptions) {
|
||||
|
||||
type SymlinkDirectDependenciesOpts = Pick<HeadlessOptions, 'registries' | 'symlink' | 'lockfileDir'> & {
|
||||
filteredLockfile: Lockfile
|
||||
dedupe?: boolean
|
||||
dedupe: boolean
|
||||
directDependenciesByImporterId: DirectDependenciesByImporterId
|
||||
projects: Project[]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user