From 3cae4fbc1c9f9657b5dbf17a63df3df7bf364295 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Mon, 9 Dec 2024 20:13:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(cli):=20=E6=96=B0=E5=A2=9Enpm=20install=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/cli/src/types.ts | 1 + packages/cli/src/utils/resolveAppPackages.ts | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/types.ts b/packages/cli/src/types.ts index e7ba9643..7a0c52f9 100644 --- a/packages/cli/src/types.ts +++ b/packages/cli/src/types.ts @@ -50,6 +50,7 @@ export interface NpmConfig { autoInstall?: boolean; /** 安装组件后,npm默认会将依赖写入package.json中,将该值设置为true,则不会写入,默认为true */ keepPackageJsonClean?: boolean; + installArgs?: string; } export interface ModuleMainFilePath { diff --git a/packages/cli/src/utils/resolveAppPackages.ts b/packages/cli/src/utils/resolveAppPackages.ts index 90a8727a..020ddeea 100644 --- a/packages/cli/src/utils/resolveAppPackages.ts +++ b/packages/cli/src/utils/resolveAppPackages.ts @@ -38,7 +38,7 @@ const getRelativePath = (str: string, base: string) => (path.isAbsolute(str) ? p const npmInstall = function (dependencies: Record, cwd: string, npmConfig: NpmConfig = {}) { try { - const { client = 'npm', registry } = npmConfig; + const { client = 'npm', registry, installArgs = '' } = npmConfig; const install = { npm: 'install', yarn: 'add', @@ -49,7 +49,9 @@ const npmInstall = function (dependencies: Record, cwd: string, .map(([name, version]) => (version ? `${name}@${version}` : name)) .join(' '); - const command = `${client} ${install} ${packages}${registry ? ` --registry ${registry}` : ''}`; + const installArgsString = `${installArgs ? ` ${installArgs}` : ''}`; + const registryString = `${registry ? ` --registry ${registry}` : ''}`; + const command = `${client} ${install}${installArgsString} ${packages}${registryString}`; execInfo(cwd); execInfo(command);