Npm 如何在package.json中动态选择包管理器

Npm 如何在package.json中动态选择包管理器,npm,package.json,yarnpkg,npm-scripts,Npm,Package.json,Yarnpkg,Npm Scripts,我目前使用warn作为我的软件包经理,但我团队中的一些人可能仍然使用npm。我在package.json “脚本”:{ “清除”:“rm-Rf app/javascripts/*&rm index.html”, “监视”:“纱线清除|节点_ENV=development webpack-w--ENV.dev”, “构建”:“纱线清理&纱线开发&纱线启动”, “dev”:“Thread clear | NODE_ENV=development webpack--ENV.dev”, “产品”:“纱线

我目前使用
warn
作为我的软件包经理,但我团队中的一些人可能仍然使用
npm
。我在
package.json

“脚本”:{
“清除”:“rm-Rf app/javascripts/*&rm index.html”,
“监视”:“纱线清除|节点_ENV=development webpack-w--ENV.dev”,
“构建”:“纱线清理&纱线开发&纱线启动”,
“dev”:“Thread clear | NODE_ENV=development webpack--ENV.dev”,
“产品”:“纱线清除|节点_ENV=生产网页--进度--环境产品”
}
如果我想在其他脚本中调用
clear
,我必须使用
npm clear
warn clear
。在当前编写脚本时,未安装
warn
的用户将遇到错误


我有没有办法编写这个
package.json
,这样无论有人运行
npm build
还是
warn build
,它都可以工作,并且它将使用他们选择的包管理器

您可以使用变量
npm\u execpath
,它将指向用于运行脚本的包管理器

例如,这将输出
纱线
npm
的版本:

“脚本”:{
“版本”:“$npm_execpath-v”,
}
$npm运行版本
> 3.10.10
$THEAN run版本
> 0.21.3