From d027049f386fd8da060d658dbda74313a9c6d3dd Mon Sep 17 00:00:00 2001 From: zyy Date: Thu, 26 Sep 2019 16:50:07 +0800 Subject: [PATCH] feat: dynamic package manager bin --- packages/@vue/cli/lib/util/ProjectPackageManager.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/@vue/cli/lib/util/ProjectPackageManager.js b/packages/@vue/cli/lib/util/ProjectPackageManager.js index 4699e1d4d9..490ed77547 100644 --- a/packages/@vue/cli/lib/util/ProjectPackageManager.js +++ b/packages/@vue/cli/lib/util/ProjectPackageManager.js @@ -78,6 +78,8 @@ class PackageManager { if (!SUPPORTED_PACKAGE_MANAGERS.includes(this.bin)) { throw new Error(`Unknown package manager: ${this.bin}`) } + + this.execBin = process.env.VUE_CLI_PACKAGE_MANAGER_BIN || this.bin } // Any command that implemented registry-related feature should support @@ -162,7 +164,7 @@ class PackageManager { async install () { const args = await this.addRegistryToArgs(PACKAGE_MANAGER_CONFIG[this.bin].install) - return executeCommand(this.bin, args, this.context) + return executeCommand(this.execBin, args, this.context) } async add (packageName, isDev = true) { @@ -171,7 +173,7 @@ class PackageManager { packageName, ...(isDev ? ['-D'] : []) ]) - return executeCommand(this.bin, args, this.context) + return executeCommand(this.execBin, args, this.context) } async upgrade (packageName) { @@ -192,7 +194,7 @@ class PackageManager { ...PACKAGE_MANAGER_CONFIG[this.bin].add, packageName ]) - return executeCommand(this.bin, args, this.context) + return executeCommand(this.execBin, args, this.context) } async remove (packageName) { @@ -200,7 +202,7 @@ class PackageManager { ...PACKAGE_MANAGER_CONFIG[this.bin].remove, packageName ] - return executeCommand(this.bin, args, this.context) + return executeCommand(this.execBin, args, this.context) } }