我目前正在使用yarn
作为我的包管理员,但我团队中的某些人仍可能使用npm
。我在package.json
"scripts": {
"clear": "rm -Rf app/javascripts/* & rm index.html",
"watch": "yarn clear | NODE_ENV=development webpack -w --env.dev",
"build": "yarn clear && yarn dev && yarn start",
"dev": "yarn clear | NODE_ENV=development webpack --env.dev",
"prod": "yarn clear | NODE_ENV=production webpack --progress --env.prod"
}
如果我想在其他脚本中调用clear
,我必须使用npm clear
或yarn clear
。由于目前编写了脚本,未安装yarn
的人将遇到错误。
我有没有办法写这个package.json
,这样无论有人运行npm build
还是yarn build
,它都会有效,它会使用他们选择的包管理器吗?
答案 0 :(得分:3)
您可以使用变量npm_execpath
,它将指向用于运行脚本的包管理器。
例如,这将输出yarn
或npm
的版本:
"scripts": {
"version": "$npm_execpath -v",
}
$ npm run version
> 3.10.10
$ yarn run version
> 0.21.3