diff --git a/src/cmd/link.ts b/src/cmd/link.ts index 9e320af005..5a437847fe 100644 --- a/src/cmd/link.ts +++ b/src/cmd/link.ts @@ -10,12 +10,14 @@ export default (input: string[], opts: PnpmOptions & {globalPrefix: string}) => return linkToGlobal(cwd, opts) } - // pnpm link ../foo - if (input[0].indexOf('.') === 0) { - const linkFrom = path.join(cwd, input[0]) - return link(linkFrom, cwd, opts) - } + return input.reduce((previous: Promise, inp: string) => { + // pnpm link ../foo + if (inp[0].indexOf('.') === 0) { + const linkFrom = path.join(cwd, inp) + return previous.then(link.bind(null, linkFrom, cwd, opts)) + } - // pnpm link foo - return linkFromGlobal(input[0], cwd, opts) + // pnpm link foo + return previous.then(linkFromGlobal.bind(null, inp, cwd, opts)) + }, Promise.resolve()) }