diff --git a/bin/builders/BaseBuilder.ts b/bin/builders/BaseBuilder.ts index a6251d3..548cdc6 100644 --- a/bin/builders/BaseBuilder.ts +++ b/bin/builders/BaseBuilder.ts @@ -105,7 +105,9 @@ export default abstract class BaseBuilder { const registryOption = isChina ? ' --registry=https://registry.npmmirror.com' : ''; - const legacyPeerDeps = ' --legacy-peer-deps'; // 解决dependency conflicts + // 根据包管理器类型设置依赖冲突解决选项 + const peerDepsOption = + packageManager === 'npm' ? ' --legacy-peer-deps' : ''; const timeout = this.getInstallTimeout(); @@ -118,13 +120,13 @@ export default abstract class BaseBuilder { const projectCnConf = path.join(tauriSrcPath, 'rust_proxy.toml'); await fsExtra.copy(projectCnConf, projectConf); await shellExec( - `cd "${npmDirectory}" && ${packageManager} install${registryOption}${legacyPeerDeps} --silent`, + `cd "${npmDirectory}" && ${packageManager} install${registryOption}${peerDepsOption} --silent`, timeout, buildEnv, ); } else { await shellExec( - `cd "${npmDirectory}" && ${packageManager} install${legacyPeerDeps} --silent`, + `cd "${npmDirectory}" && ${packageManager} install${peerDepsOption} --silent`, timeout, buildEnv, ); diff --git a/dist/cli.js b/dist/cli.js index c6a1217..2d9b0b4 100755 --- a/dist/cli.js +++ b/dist/cli.js @@ -659,17 +659,18 @@ class BaseBuilder { const registryOption = isChina ? ' --registry=https://registry.npmmirror.com' : ''; - const legacyPeerDeps = ' --legacy-peer-deps'; // 解决dependency conflicts + // 根据包管理器类型设置依赖冲突解决选项 + const peerDepsOption = packageManager === 'npm' ? ' --legacy-peer-deps' : ''; const timeout = this.getInstallTimeout(); const buildEnv = this.getBuildEnvironment(); if (isChina) { logger.info(`✺ Located in China, using ${packageManager}/rsProxy CN mirror.`); const projectCnConf = path.join(tauriSrcPath, 'rust_proxy.toml'); await fsExtra.copy(projectCnConf, projectConf); - await shellExec(`cd "${npmDirectory}" && ${packageManager} install${registryOption}${legacyPeerDeps} --silent`, timeout, buildEnv); + await shellExec(`cd "${npmDirectory}" && ${packageManager} install${registryOption}${peerDepsOption} --silent`, timeout, buildEnv); } else { - await shellExec(`cd "${npmDirectory}" && ${packageManager} install${legacyPeerDeps} --silent`, timeout, buildEnv); + await shellExec(`cd "${npmDirectory}" && ${packageManager} install${peerDepsOption} --silent`, timeout, buildEnv); } spinner.succeed(chalk.green('Package installed!')); if (!tauriTargetPathExists) {