fix: don't encode the peer suffix of local dep paths

close #2535
This commit is contained in:
Zoltan Kochan
2020-05-10 02:52:06 +03:00
parent 7b88dcfd75
commit a7d20d9270
15 changed files with 76 additions and 29 deletions

View File

@@ -0,0 +1,6 @@
---
"@pnpm/headless": patch
"supi": patch
---
The peer suffix at the end of local tarball dependency paths is not encoded.

View File

@@ -88,7 +88,7 @@
"@pnpm/modules-cleaner": "workspace:9.0.0-alpha.4",
"@pnpm/modules-yaml": "workspace:7.0.0-alpha.0",
"@pnpm/package-requester": "workspace:12.0.0-alpha.4",
"@pnpm/pkgid-to-filename": "3.0.0-0",
"@pnpm/pkgid-to-filename": "3.0.0-1",
"@pnpm/read-package-json": "workspace:3.1.1-alpha.0",
"@pnpm/read-project-manifest": "workspace:1.0.6-alpha.0",
"@pnpm/store-controller-types": "workspace:8.0.0-alpha.3",

View File

@@ -44,7 +44,7 @@
"@pnpm/lockfile-types": "workspace:2.0.0",
"@pnpm/lockfile-utils": "workspace:2.0.12-alpha.0",
"@pnpm/lockfile-walker": "workspace:2.0.3-alpha.0",
"@pnpm/pkgid-to-filename": "3.0.0-0",
"@pnpm/pkgid-to-filename": "3.0.0-1",
"@pnpm/symlink-dependency": "workspace:3.0.5-alpha.0",
"@pnpm/types": "workspace:6.0.0-alpha.0",
"dependency-path": "workspace:4.0.7-alpha.0",

View File

@@ -32,7 +32,7 @@
"@pnpm/lockfile-types": "workspace:2.0.0",
"@pnpm/lockfile-utils": "workspace:2.0.12-alpha.0",
"@pnpm/package-bins": "workspace:4.0.4-alpha.0",
"@pnpm/pkgid-to-filename": "^3.0.0-0",
"@pnpm/pkgid-to-filename": "^3.0.0-1",
"@pnpm/read-modules-dir": "workspace:2.0.1",
"@pnpm/read-package-json": "workspace:3.1.1-alpha.0",
"@pnpm/store-controller-types": "workspace:8.0.0-alpha.3",

View File

@@ -38,7 +38,7 @@
"@pnpm/cafs": "workspace:1.0.0-alpha.4",
"@pnpm/core-loggers": "workspace:4.0.2-alpha.0",
"@pnpm/fetcher-base": "workspace:7.0.0-alpha.3",
"@pnpm/pkgid-to-filename": "3.0.0-0",
"@pnpm/pkgid-to-filename": "3.0.0-1",
"@pnpm/read-package-json": "workspace:3.1.1-alpha.0",
"@pnpm/resolver-base": "workspace:7.0.1-alpha.0",
"@pnpm/store-controller-types": "workspace:8.0.0-alpha.3",

View File

@@ -20,7 +20,7 @@
"@pnpm/core-loggers": "workspace:4.0.2-alpha.0",
"@pnpm/fetcher-base": "workspace:7.0.0-alpha.3",
"@pnpm/package-requester": "workspace:12.0.0-alpha.4",
"@pnpm/pkgid-to-filename": "3.0.0-0",
"@pnpm/pkgid-to-filename": "3.0.0-1",
"@pnpm/resolver-base": "workspace:7.0.1-alpha.0",
"@pnpm/store-controller-types": "workspace:8.0.0-alpha.3",
"@pnpm/types": "workspace:6.0.0-alpha.0",

View File

@@ -61,7 +61,7 @@
"@pnpm/lockfile-walker": "workspace:2.0.3-alpha.0",
"@pnpm/modules-yaml": "workspace:7.0.0-alpha.0",
"@pnpm/normalize-registries": "workspace:1.0.1-alpha.0",
"@pnpm/pkgid-to-filename": "3.0.0-0",
"@pnpm/pkgid-to-filename": "3.0.0-1",
"@pnpm/sort-packages": "workspace:1.0.10-alpha.1",
"@pnpm/store-connection-manager": "workspace:0.3.0-alpha.4",
"@pnpm/store-controller-types": "workspace:8.0.0-alpha.3",

View File

@@ -62,7 +62,7 @@
"@pnpm/normalize-registries": "workspace:1.0.1-alpha.0",
"@pnpm/parse-wanted-dependency": "workspace:1.0.0",
"@pnpm/pick-registry-for-package": "workspace:1.0.1-alpha.0",
"@pnpm/pkgid-to-filename": "^3.0.0-0",
"@pnpm/pkgid-to-filename": "^3.0.0-1",
"@pnpm/store-connection-manager": "workspace:0.3.0-alpha.4",
"@pnpm/store-controller-types": "workspace:8.0.0-alpha.3",
"@pnpm/store-path": "^4.0.0-0",

View File

@@ -34,7 +34,7 @@
"@pnpm/npm-resolver": "workspace:8.0.0-alpha.2",
"@pnpm/package-is-installable": "workspace:4.0.8-alpha.0",
"@pnpm/pick-registry-for-package": "workspace:1.0.1-alpha.0",
"@pnpm/pkgid-to-filename": "^3.0.0-0",
"@pnpm/pkgid-to-filename": "^3.0.0-1",
"@pnpm/resolver-base": "workspace:7.0.1-alpha.0",
"@pnpm/store-controller-types": "workspace:8.0.0-alpha.3",
"@pnpm/types": "workspace:6.0.0-alpha.0",

View File

@@ -37,7 +37,7 @@
"@pnpm/normalize-registries": "workspace:1.0.1-alpha.0",
"@pnpm/package-requester": "workspace:12.0.0-alpha.4",
"@pnpm/parse-wanted-dependency": "workspace:1.0.0",
"@pnpm/pkgid-to-filename": "3.0.0-0",
"@pnpm/pkgid-to-filename": "3.0.0-1",
"@pnpm/prune-lockfile": "workspace:2.0.8-alpha.1",
"@pnpm/read-modules-dir": "workspace:2.0.1",
"@pnpm/read-package-json": "workspace:3.1.1-alpha.0",

View File

@@ -2,6 +2,7 @@ import { WANTED_LOCKFILE } from '@pnpm/constants'
import { Lockfile } from '@pnpm/lockfile-file'
import { prepareEmpty, preparePackages } from '@pnpm/prepare'
import { addDistTag, REGISTRY_MOCK_PORT } from '@pnpm/registry-mock'
import { pathToLocalPkg } from '@pnpm/test-fixtures'
import rimraf = require('@zkochan/rimraf')
import deepRequireCwd = require('deep-require-cwd')
import loadJsonFile = require('load-json-file')
@@ -840,3 +841,34 @@ test('warning is not reported when cannot resolve optional peer dependency (spec
},
})
})
test('local tarball dependency with peer dependency', async (t: tape.Test) => {
prepareEmpty(t)
const reporter = sinon.spy()
const manifest = await addDependenciesToPackage({}, [
`file:${pathToLocalPkg('tar-pkg-with-peers/tar-pkg-with-peers-1.0.0.tgz')}`,
'bar@100.0.0',
'foo@100.0.0',
], await testDefaults({ reporter }))
const localPkgDirs = await fs.readdir('node_modules/.pnpm/local')
t.equal(localPkgDirs.length, 1)
t.ok(localPkgDirs[0].endsWith('_bar@100.0.0+foo@100.0.0'))
await rimraf('node_modules')
await mutateModules([
{
buildIndex: 0,
manifest,
mutation: 'install',
rootDir: process.cwd(),
},
], await testDefaults())
t.deepEqual(await fs.readdir('node_modules/.pnpm/local'), localPkgDirs)
})

40
pnpm-lock.yaml generated
View File

@@ -606,7 +606,7 @@ importers:
'@pnpm/modules-cleaner': 'link:../modules-cleaner'
'@pnpm/modules-yaml': 'link:../modules-yaml'
'@pnpm/package-requester': 'link:../package-requester'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/read-package-json': 'link:../read-package-json'
'@pnpm/read-project-manifest': 'link:../read-project-manifest'
'@pnpm/store-controller-types': 'link:../store-controller-types'
@@ -666,7 +666,7 @@ importers:
'@pnpm/modules-yaml': 'workspace:7.0.0-alpha.0'
'@pnpm/package-requester': 'workspace:12.0.0-alpha.4'
'@pnpm/package-store': 'workspace:*'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/read-package-json': 'workspace:3.1.1-alpha.0'
'@pnpm/read-project-manifest': 'workspace:1.0.6-alpha.0'
'@pnpm/read-projects-context': 'workspace:*'
@@ -705,7 +705,7 @@ importers:
'@pnpm/lockfile-types': 'link:../lockfile-types'
'@pnpm/lockfile-utils': 'link:../lockfile-utils'
'@pnpm/lockfile-walker': 'link:../lockfile-walker'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/symlink-dependency': 'link:../symlink-dependency'
'@pnpm/types': 'link:../types'
dependency-path: 'link:../dependency-path'
@@ -720,7 +720,7 @@ importers:
'@pnpm/lockfile-utils': 'workspace:2.0.12-alpha.0'
'@pnpm/lockfile-walker': 'workspace:2.0.3-alpha.0'
'@pnpm/logger': 3.2.2
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/symlink-dependency': 'workspace:3.0.5-alpha.0'
'@pnpm/types': 'workspace:6.0.0-alpha.0'
'@types/ramda': ^0.27.5
@@ -993,7 +993,7 @@ importers:
'@pnpm/lockfile-types': 'link:../lockfile-types'
'@pnpm/lockfile-utils': 'link:../lockfile-utils'
'@pnpm/package-bins': 'link:../package-bins'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/read-modules-dir': 'link:../read-modules-dir'
'@pnpm/read-package-json': 'link:../read-package-json'
'@pnpm/store-controller-types': 'link:../store-controller-types'
@@ -1015,7 +1015,7 @@ importers:
'@pnpm/logger': 3.2.2
'@pnpm/modules-cleaner': 'link:'
'@pnpm/package-bins': 'workspace:4.0.4-alpha.0'
'@pnpm/pkgid-to-filename': ^3.0.0-0
'@pnpm/pkgid-to-filename': ^3.0.0-1
'@pnpm/read-modules-dir': 'workspace:2.0.1'
'@pnpm/read-package-json': 'workspace:3.1.1-alpha.0'
'@pnpm/store-controller-types': 'workspace:8.0.0-alpha.3'
@@ -1221,7 +1221,7 @@ importers:
'@pnpm/cafs': 'link:../cafs'
'@pnpm/core-loggers': 'link:../core-loggers'
'@pnpm/fetcher-base': 'link:../fetcher-base'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/read-package-json': 'link:../read-package-json'
'@pnpm/resolver-base': 'link:../resolver-base'
'@pnpm/store-controller-types': 'link:../store-controller-types'
@@ -1263,7 +1263,7 @@ importers:
'@pnpm/logger': 3.2.2
'@pnpm/npm-resolver': 'workspace:*'
'@pnpm/package-requester': 'link:'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/read-package-json': 'workspace:3.1.1-alpha.0'
'@pnpm/resolver-base': 'workspace:7.0.1-alpha.0'
'@pnpm/store-controller-types': 'workspace:8.0.0-alpha.3'
@@ -1298,7 +1298,7 @@ importers:
'@pnpm/core-loggers': 'link:../core-loggers'
'@pnpm/fetcher-base': 'link:../fetcher-base'
'@pnpm/package-requester': 'link:../package-requester'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/resolver-base': 'link:../resolver-base'
'@pnpm/store-controller-types': 'link:../store-controller-types'
'@pnpm/types': 'link:../types'
@@ -1335,7 +1335,7 @@ importers:
'@pnpm/npm-resolver': 'workspace:*'
'@pnpm/package-requester': 'workspace:12.0.0-alpha.4'
'@pnpm/package-store': 'link:'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/resolver-base': 'workspace:7.0.1-alpha.0'
'@pnpm/store-controller-types': 'workspace:8.0.0-alpha.3'
'@pnpm/tarball-fetcher': 'workspace:*'
@@ -1813,7 +1813,7 @@ importers:
'@pnpm/lockfile-walker': 'link:../lockfile-walker'
'@pnpm/modules-yaml': 'link:../modules-yaml'
'@pnpm/normalize-registries': 'link:../normalize-registries'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/sort-packages': 'link:../sort-packages'
'@pnpm/store-connection-manager': 'link:../store-connection-manager'
'@pnpm/store-controller-types': 'link:../store-controller-types'
@@ -1861,7 +1861,7 @@ importers:
'@pnpm/logger': ^3.2.2
'@pnpm/modules-yaml': 'workspace:7.0.0-alpha.0'
'@pnpm/normalize-registries': 'workspace:1.0.1-alpha.0'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/plugin-commands-rebuild': 'link:'
'@pnpm/prepare': 'workspace:0.0.2-alpha.1'
'@pnpm/sort-packages': 'workspace:1.0.10-alpha.1'
@@ -2010,7 +2010,7 @@ importers:
'@pnpm/normalize-registries': 'link:../normalize-registries'
'@pnpm/parse-wanted-dependency': 'link:../parse-wanted-dependency'
'@pnpm/pick-registry-for-package': 'link:../pick-registry-for-package'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/store-connection-manager': 'link:../store-connection-manager'
'@pnpm/store-controller-types': 'link:../store-controller-types'
'@pnpm/store-path': 4.0.0-0
@@ -2054,7 +2054,7 @@ importers:
'@pnpm/normalize-registries': 'workspace:1.0.1-alpha.0'
'@pnpm/parse-wanted-dependency': 'workspace:1.0.0'
'@pnpm/pick-registry-for-package': 'workspace:1.0.1-alpha.0'
'@pnpm/pkgid-to-filename': ^3.0.0-0
'@pnpm/pkgid-to-filename': ^3.0.0-1
'@pnpm/plugin-commands-store': 'link:'
'@pnpm/prepare': 'workspace:0.0.2-alpha.1'
'@pnpm/store-connection-manager': 'workspace:0.3.0-alpha.4'
@@ -2389,7 +2389,7 @@ importers:
'@pnpm/npm-resolver': 'link:../npm-resolver'
'@pnpm/package-is-installable': 'link:../package-is-installable'
'@pnpm/pick-registry-for-package': 'link:../pick-registry-for-package'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/resolver-base': 'link:../resolver-base'
'@pnpm/store-controller-types': 'link:../store-controller-types'
'@pnpm/types': 'link:../types'
@@ -2412,7 +2412,7 @@ importers:
'@pnpm/npm-resolver': 'workspace:8.0.0-alpha.2'
'@pnpm/package-is-installable': 'workspace:4.0.8-alpha.0'
'@pnpm/pick-registry-for-package': 'workspace:1.0.1-alpha.0'
'@pnpm/pkgid-to-filename': ^3.0.0-0
'@pnpm/pkgid-to-filename': ^3.0.0-1
'@pnpm/resolve-dependencies': 'link:'
'@pnpm/resolver-base': 'workspace:7.0.1-alpha.0'
'@pnpm/store-controller-types': 'workspace:8.0.0-alpha.3'
@@ -2575,7 +2575,7 @@ importers:
'@pnpm/normalize-registries': 'link:../normalize-registries'
'@pnpm/package-requester': 'link:../package-requester'
'@pnpm/parse-wanted-dependency': 'link:../parse-wanted-dependency'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/prune-lockfile': 'link:../prune-lockfile'
'@pnpm/read-modules-dir': 'link:../read-modules-dir'
'@pnpm/read-package-json': 'link:../read-package-json'
@@ -2679,7 +2679,7 @@ importers:
'@pnpm/package-requester': 'workspace:12.0.0-alpha.4'
'@pnpm/package-store': 'workspace:*'
'@pnpm/parse-wanted-dependency': 'workspace:1.0.0'
'@pnpm/pkgid-to-filename': 3.0.0-0
'@pnpm/pkgid-to-filename': 3.0.0-1
'@pnpm/prepare': 'workspace:0.0.2-alpha.1'
'@pnpm/prune-lockfile': 'workspace:2.0.8-alpha.1'
'@pnpm/read-modules-dir': 'workspace:2.0.1'
@@ -3435,14 +3435,14 @@ packages:
node: '>=10'
resolution:
integrity: sha512-/hQK/HSxnqPavF/Wc1YanCtcrYnpLVEqv3fcHJ5SQmKbcaoIVHeUnBsI2Ep6JZiTTYxCfkzRw9c6mr9sn3Uk3w==
/@pnpm/pkgid-to-filename/3.0.0-0:
/@pnpm/pkgid-to-filename/3.0.0-1:
dependencies:
normalize-path: 3.0.0
dev: false
engines:
node: '>=10.13'
resolution:
integrity: sha512-DojhkQRsAUqo39xnHqVUwMh3zIMRbMoSzv2AwT/+XOlpVPQbFCq7pOmQYs+sf78cDt06gTKJMaaO/gkMY6GsxQ==
integrity: sha512-XiDnXNFIXouJVepE9/C8Tmvs/+OJkOyjeIkNGTua8gCrfSqbEcUE+WtiozX/Y/Uq9l6bEN7BZWdM2xEnddnHTg==
/@pnpm/registry-mock/2.0.1:
dependencies:
anonymous-npm-registry-client: 0.1.2

View File

@@ -0,0 +1 @@
module.exports = () => require('./package.json').name

View File

@@ -0,0 +1,8 @@
{
"name": "tar-pkg-with-peers",
"version": "1.0.0",
"peerDependencies": {
"bar": "^100.0.0",
"foo": "^100.0.0"
}
}