mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-28 12:01:37 -04:00
fix(list): don't fail on local directory dependencies (#6911)
close #6873
This commit is contained in:
@@ -39,7 +39,7 @@ export interface GetPkgInfoOpts {
|
||||
|
||||
export function getPkgInfo (opts: GetPkgInfoOpts): PackageInfo {
|
||||
let name!: string
|
||||
let version!: string
|
||||
let version: string
|
||||
let resolved: string | undefined
|
||||
let dev: boolean | undefined
|
||||
let optional: true | undefined
|
||||
@@ -73,6 +73,9 @@ export function getPkgInfo (opts: GetPkgInfoOpts): PackageInfo {
|
||||
name = opts.alias
|
||||
version = opts.ref
|
||||
}
|
||||
if (!version) {
|
||||
version = opts.ref
|
||||
}
|
||||
const fullPackagePath = depPath
|
||||
? path.join(opts.virtualStoreDir ?? '.pnpm', depPathToFilename(depPath), 'node_modules', name)
|
||||
: path.join(opts.linkedPathBaseDir, opts.ref.slice(5))
|
||||
|
||||
@@ -154,3 +154,37 @@ pkg-with-optional 1.0.0
|
||||
└── not-compatible-with-any-os 1.0.0 skipped`)
|
||||
}
|
||||
})
|
||||
|
||||
// Covers https://github.com/pnpm/pnpm/issues/6873
|
||||
test('listing packages should not fail on package that has local file directory in dependencies', async () => {
|
||||
preparePackages([
|
||||
{
|
||||
name: 'dep',
|
||||
version: '1.0.0',
|
||||
},
|
||||
{
|
||||
name: 'pkg',
|
||||
version: '1.0.0',
|
||||
|
||||
dependencies: {
|
||||
dep: 'file:../dep',
|
||||
},
|
||||
},
|
||||
])
|
||||
|
||||
const pkgDir = path.resolve('pkg')
|
||||
await execa('node', [pnpmBin, 'install'], { cwd: pkgDir })
|
||||
|
||||
const output = await list.handler({
|
||||
dev: false,
|
||||
dir: pkgDir,
|
||||
optional: false,
|
||||
}, [])
|
||||
|
||||
expect(stripAnsi(output)).toBe(`Legend: production dependency, optional only, dev only
|
||||
|
||||
pkg@1.0.0 ${pkgDir}
|
||||
|
||||
dependencies:
|
||||
dep file:../dep`)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user