From ee5a79155120f184efc2ec72d798f3f9c09ce799 Mon Sep 17 00:00:00 2001 From: Jay McDoniel Date: Wed, 26 Oct 2022 17:18:32 -0700 Subject: [PATCH] fix: update pnpm install flags pnpm v7.0.0 until 7.13.5 uses `--strict-peer-dependencies=true` which causes a failure when not all `peerDependencies` are installed. By setting the flag explicitly, this will no longer be a problem for new users. fix: #1806 --- lib/package-managers/pnpm.package-manager.ts | 4 ++-- .../package-managers/pnpm.package-manager.spec.ts | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/package-managers/pnpm.package-manager.ts b/lib/package-managers/pnpm.package-manager.ts index 11eb8b82a..43367c675 100644 --- a/lib/package-managers/pnpm.package-manager.ts +++ b/lib/package-managers/pnpm.package-manager.ts @@ -16,8 +16,8 @@ export class PnpmPackageManager extends AbstractPackageManager { // As of PNPM v5.3, all commands are shared with NPM v6.14.5. See: https://pnpm.js.org/en/pnpm-vs-npm get cli(): PackageManagerCommands { return { - install: 'install', - add: 'install', + install: 'install --strict-peer-dependencies=false', + add: 'install --strict-peer-dependencies=false', update: 'update', remove: 'uninstall', saveFlag: '--save', diff --git a/test/lib/package-managers/pnpm.package-manager.spec.ts b/test/lib/package-managers/pnpm.package-manager.spec.ts index 7579ef2c3..96a5db5ef 100644 --- a/test/lib/package-managers/pnpm.package-manager.spec.ts +++ b/test/lib/package-managers/pnpm.package-manager.spec.ts @@ -23,8 +23,8 @@ describe('PnpmPackageManager', () => { }); it('should have the correct cli commands', () => { const expectedValues: PackageManagerCommands = { - install: 'install', - add: 'install', + install: 'install --strict-peer-dependencies=false', + add: 'install --strict-peer-dependencies=false', update: 'update', remove: 'uninstall', saveFlag: '--save', @@ -39,7 +39,7 @@ describe('PnpmPackageManager', () => { const dirName = '/tmp'; const testDir = join(process.cwd(), dirName); packageManager.install(dirName, 'pnpm'); - expect(spy).toBeCalledWith('install --reporter=silent', true, testDir); + expect(spy).toBeCalledWith('install --strict-peer-dependencies=false --reporter=silent', true, testDir); }); }); describe('addProduction', () => { @@ -47,7 +47,7 @@ describe('PnpmPackageManager', () => { const spy = jest.spyOn((packageManager as any).runner, 'run'); const dependencies = ['@nestjs/common', '@nestjs/core']; const tag = '5.0.0'; - const command = `install --save ${dependencies + const command = `install --strict-peer-dependencies=false --save ${dependencies .map((dependency) => `${dependency}@${tag}`) .join(' ')}`; packageManager.addProduction(dependencies, tag); @@ -59,7 +59,7 @@ describe('PnpmPackageManager', () => { const spy = jest.spyOn((packageManager as any).runner, 'run'); const dependencies = ['@nestjs/common', '@nestjs/core']; const tag = '5.0.0'; - const command = `install --save-dev ${dependencies + const command = `install --strict-peer-dependencies=false --save-dev ${dependencies .map((dependency) => `${dependency}@${tag}`) .join(' ')}`; packageManager.addDevelopment(dependencies, tag); @@ -91,7 +91,7 @@ describe('PnpmPackageManager', () => { const tag = '5.0.0'; const uninstallCommand = `uninstall --save ${dependencies.join(' ')}`; - const installCommand = `install --save ${dependencies + const installCommand = `install --strict-peer-dependencies=false --save ${dependencies .map((dependency) => `${dependency}@${tag}`) .join(' ')}`; @@ -110,7 +110,7 @@ describe('PnpmPackageManager', () => { const tag = '5.0.0'; const uninstallCommand = `uninstall --save-dev ${dependencies.join(' ')}`; - const installCommand = `install --save-dev ${dependencies + const installCommand = `install --strict-peer-dependencies=false --save-dev ${dependencies .map((dependency) => `${dependency}@${tag}`) .join(' ')}`;