Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
npm scripts/package.json-仅当当前在git主分支上时运行_Git_Npm_Npm Scripts - Fatal编程技术网

npm scripts/package.json-仅当当前在git主分支上时运行

npm scripts/package.json-仅当当前在git主分支上时运行,git,npm,npm-scripts,Git,Npm,Npm Scripts,我正在尝试创建一个脚本,该脚本仅在master是当前签出的分支时运行 我通过以下方式获得了分支名称: git rev-parse --symbolic-full-name --abbrev-ref HEAD 但是把它放在脚本中,检查它的值,然后根据它做一件或另一件事情,效果并不好 "foo": "set branch=git rev-parse --symbolic-full-name --abbrev-ref HEAD | if [branch==master]; then echo \"y

我正在尝试创建一个脚本,该脚本仅在master是当前签出的分支时运行

我通过以下方式获得了分支名称:

git rev-parse --symbolic-full-name --abbrev-ref HEAD
但是把它放在脚本中,检查它的值,然后根据它做一件或另一件事情,效果并不好

"foo": "set branch=git rev-parse --symbolic-full-name --abbrev-ref HEAD | if [branch==master]; then echo \"yes\"; else echo \"no\"; fi;"

有什么想法吗?

以下方法将成功:

npm脚本:

“脚本”:{
“foo”:“branch=$(git rev parse——符号全名——abbrev ref HEAD);如果[[$branch==\“master\”];则回显“yes\”;否则回显“no\”fi
},
说明:

  • git
    命令被包装在
    $()
    -中,即。这意味着它将运行
    git rev parse…
    命令,并将其输出分配给
    分支
    变量
  • 随后,通过使用:
    if[[$branch==\“master\”],对
    分支
    值进行有条件检查;然后…
跨平台:


如果在非Bash环境(如Windows
cmd.exe
或PowerShell)中执行
npm run foo
命令,这显然会失败。如果跨平台支持是一项要求(我猜不是!),那么我建议在node.js脚本中处理此逻辑,并利用它调用
git
命令。然后可以通过您的npm脚本调用
node.js

Brilliant-非常感谢RobC,它工作得非常好:-)