diff --git a/src/api/extendOptions.ts b/src/api/extendOptions.ts index c4236e25fe..c2bd956e57 100644 --- a/src/api/extendOptions.ts +++ b/src/api/extendOptions.ts @@ -35,5 +35,8 @@ export default (opts?: PnpmOptions): StrictPnpmOptions => { if (extendedOpts.force) { logger.warn('using --force I sure hope you know what you are doing') } + if (extendedOpts.localRegistry !== DEFAULT_LOCAL_REGISTRY) { + extendedOpts.localRegistry = expandTilde(extendedOpts.localRegistry, extendedOpts.cwd) + } return extendedOpts } diff --git a/src/fs/expandTilde.ts b/src/fs/expandTilde.ts index 206514ca8a..b8a28fdaca 100644 --- a/src/fs/expandTilde.ts +++ b/src/fs/expandTilde.ts @@ -1,13 +1,19 @@ import osHomedir = require('os-homedir') import path = require('path') -export default function expandTilde (filepath: string) { +export default function expandTilde (filepath: string, cwd?: string) { const home = getHomedir() - if (!isHomepath(filepath)) { + if (isHomepath(filepath)) { + return path.join(home, filepath.substr(2)) + } + if (path.isAbsolute(filepath)) { return filepath } - return path.resolve(home, filepath.substr(2)) + if (cwd) { + return path.join(cwd, filepath) + } + return path.resolve(filepath) } function getHomedir () {