From d79bd5a1fa8740a13b968c2c5083bfd4ccda2465 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Wed, 21 Aug 2019 02:26:03 +0300 Subject: [PATCH] fix: partial install in monorepo with --independent-leaves PR #1971 close #1969 --- packages/headless/package.json | 2 +- packages/outdated/package.json | 2 +- packages/pnpm/package.json | 2 +- packages/pnpm/src/cmd/install.ts | 4 +++- packages/pnpm/test/rebuild.ts | 12 ++++++++++++ packages/supi/package.json | 2 +- pnpm-lock.yaml | 22 +++++++++++----------- 7 files changed, 30 insertions(+), 16 deletions(-) diff --git a/packages/headless/package.json b/packages/headless/package.json index d1a234477e..e5aa85b899 100644 --- a/packages/headless/package.json +++ b/packages/headless/package.json @@ -26,7 +26,7 @@ "@pnpm/logger": "2.1.1", "@pnpm/package-store": "file:../package-store", "@pnpm/read-importers-context": "file:../read-importers-context", - "@pnpm/registry-mock": "1.3.0", + "@pnpm/registry-mock": "1.4.0", "@pnpm/store-path": "2.1.0", "@types/fs-extra": "8.0.0", "@types/mz": "0.0.32", diff --git a/packages/outdated/package.json b/packages/outdated/package.json index ffce14de01..c51fa96a0b 100644 --- a/packages/outdated/package.json +++ b/packages/outdated/package.json @@ -50,7 +50,7 @@ "devDependencies": { "@pnpm/logger": "2.1.1", "@pnpm/outdated": "link:", - "@pnpm/registry-mock": "1.3.0", + "@pnpm/registry-mock": "1.4.0", "npm-run-all": "4.1.5", "tape": "4.11.0" } diff --git a/packages/pnpm/package.json b/packages/pnpm/package.json index 11db16839b..90df494865 100644 --- a/packages/pnpm/package.json +++ b/packages/pnpm/package.json @@ -99,7 +99,7 @@ "@pnpm/modules-yaml": "3.0.3", "@pnpm/prepare": "0.0.0", "@pnpm/read-package-json": "link:../read-package-json", - "@pnpm/registry-mock": "1.3.0", + "@pnpm/registry-mock": "1.4.0", "@pnpm/write-importer-manifest": "link:../write-importer-manifest", "@types/byline": "4.2.31", "@types/common-tags": "1.8.0", diff --git a/packages/pnpm/src/cmd/install.ts b/packages/pnpm/src/cmd/install.ts index af750761c6..89b7e0bec1 100644 --- a/packages/pnpm/src/cmd/install.ts +++ b/packages/pnpm/src/cmd/install.ts @@ -120,7 +120,9 @@ export default async function installCmd ( ], { ...opts, pending: true, - } as any, // tslint:disable-line:no-any + store: store.path, + storeController: store.ctrl, + }, ) } } diff --git a/packages/pnpm/test/rebuild.ts b/packages/pnpm/test/rebuild.ts index 9da1d38a59..33b56634b8 100644 --- a/packages/pnpm/test/rebuild.ts +++ b/packages/pnpm/test/rebuild.ts @@ -1,9 +1,12 @@ import prepare from '@pnpm/prepare' +import path = require('path') +import exists = require('path-exists') import tape = require('tape') import promisifyTape from 'tape-promise' import { execPnpm } from './utils' const test = promisifyTape(tape) +const testOnly = promisifyTape(tape.only) test('rebuild', async (t: tape.Test) => { const project = prepare(t) @@ -45,3 +48,12 @@ test('rebuilds specific dependencies', async function (t: tape.Test) { const generatedByPostinstall = project.requireModule('install-scripts-example-for-pnpm/generated-by-postinstall') t.ok(typeof generatedByPostinstall === 'function', 'generatedByPostinstall() is available') }) + +// Covers https://github.com/pnpm/pnpm/issues/1969 +test('rebuild a package with no deps when independent-leaves is true', async (t: tape.Test) => { + prepare(t) + + await execPnpm('add', 'independent-and-requires-build@1.0.0', '--independent-leaves', '--link-workspace-packages', '--workspace-prefix=.') + + t.ok(await exists(path.resolve('node_modules/independent-and-requires-build/created-by-postinstall'))) +}) diff --git a/packages/supi/package.json b/packages/supi/package.json index 4fe116213c..98b0d790d7 100644 --- a/packages/supi/package.json +++ b/packages/supi/package.json @@ -82,7 +82,7 @@ "@pnpm/logger": "2.1.1", "@pnpm/package-store": "file:../package-store", "@pnpm/prepare": "0.0.0", - "@pnpm/registry-mock": "1.3.0", + "@pnpm/registry-mock": "1.4.0", "@pnpm/store-path": "2.1.0", "@types/common-tags": "1.8.0", "@types/fs-extra": "8.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4fad8b5251..bb8295ffe3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -424,7 +424,7 @@ importers: '@pnpm/logger': 2.1.1 '@pnpm/package-store': 'link:../package-store' '@pnpm/read-importers-context': 'link:../read-importers-context' - '@pnpm/registry-mock': 1.3.0 + '@pnpm/registry-mock': 1.4.0 '@pnpm/store-path': 2.1.0 '@types/fs-extra': 8.0.0 '@types/mz': 0.0.32 @@ -467,7 +467,7 @@ importers: '@pnpm/read-importer-manifest': 'workspace:1.0.8' '@pnpm/read-importers-context': 'file:../read-importers-context' '@pnpm/read-package-json': 'workspace:2.0.3' - '@pnpm/registry-mock': 1.3.0 + '@pnpm/registry-mock': 1.4.0 '@pnpm/shamefully-flatten': 'workspace:4.0.0' '@pnpm/store-controller-types': 'workspace:3.0.3' '@pnpm/store-path': 2.1.0 @@ -820,7 +820,7 @@ importers: devDependencies: '@pnpm/logger': 2.1.1 '@pnpm/outdated': 'link:' - '@pnpm/registry-mock': 1.3.0 + '@pnpm/registry-mock': 1.4.0 npm-run-all: 4.1.5 tape: 4.11.0 specifiers: @@ -829,7 +829,7 @@ importers: '@pnpm/lockfile-utils': 'workspace:1.0.10' '@pnpm/logger': 2.1.1 '@pnpm/outdated': 'link:' - '@pnpm/registry-mock': 1.3.0 + '@pnpm/registry-mock': 1.4.0 '@pnpm/types': 'workspace:3.2.0' '@types/minimatch': 3.0.3 dependency-path: 'workspace:3.0.8' @@ -1097,7 +1097,7 @@ importers: '@pnpm/modules-yaml': 'link:../modules-yaml' '@pnpm/prepare': 'link:../../privatePackages/prepare' '@pnpm/read-package-json': 'link:../read-package-json' - '@pnpm/registry-mock': 1.3.0 + '@pnpm/registry-mock': 1.4.0 '@pnpm/write-importer-manifest': 'link:../write-importer-manifest' '@types/byline': 4.2.31 '@types/common-tags': 1.8.0 @@ -1147,7 +1147,7 @@ importers: '@pnpm/prepare': 0.0.0 '@pnpm/read-importer-manifest': 'workspace:1.0.8' '@pnpm/read-package-json': 'link:../read-package-json' - '@pnpm/registry-mock': 1.3.0 + '@pnpm/registry-mock': 1.4.0 '@pnpm/server': 'workspace:3.0.6' '@pnpm/store-controller-types': 'workspace:3.0.3' '@pnpm/store-path': 2.1.0 @@ -1528,7 +1528,7 @@ importers: '@pnpm/logger': 2.1.1 '@pnpm/package-store': 'link:../package-store' '@pnpm/prepare': 'link:../../privatePackages/prepare' - '@pnpm/registry-mock': 1.3.0 + '@pnpm/registry-mock': 1.4.0 '@pnpm/store-path': 2.1.0 '@types/common-tags': 1.8.0 '@types/fs-extra': 8.0.0 @@ -1589,7 +1589,7 @@ importers: '@pnpm/read-importers-context': 'workspace:1.0.9' '@pnpm/read-modules-dir': 'workspace:2.0.1' '@pnpm/read-package-json': 'workspace:2.0.3' - '@pnpm/registry-mock': 1.3.0 + '@pnpm/registry-mock': 1.4.0 '@pnpm/resolve-dependencies': 'workspace:8.0.8' '@pnpm/resolver-base': 'workspace:3.1.2' '@pnpm/shamefully-flatten': 'workspace:4.0.0' @@ -2213,18 +2213,18 @@ packages: node: '>=8.15' resolution: integrity: sha512-rPUEWrQ+DZ+FJf6iF/7AA/q71bua1ak77qWiO8eZScD0Aib5rbmmsjIHUArgIOwbTx5q6l2gOsNtvFBnCvq9/g== - /@pnpm/registry-mock/1.3.0: + /@pnpm/registry-mock/1.4.0: dependencies: anonymous-npm-registry-client: 0.1.2 cpr: 3.0.1 - rimraf: 2.7.1 + rimraf: 3.0.0 verdaccio: 4.2.1 dev: true engines: node: '>=8.15' hasBin: true resolution: - integrity: sha512-qsUirqPabAVWum/wYyr4CONv5XVSuC6BucSGPBw5Wxop0F8LkF8p3KisyYFsB02unkHWq1PBcYbiJvfUUN8djg== + integrity: sha512-2GzsC4937QJcdWr9uWcBIaHF7CIeIeCVJhwfab31B73O9+Pc7baikKjMMUWDPgnMJG7kTRlRSadVYN6KDjiLaw== /@pnpm/store-path/2.1.0: dependencies: can-link: 1.0.2