npm scripts/package.json-仅当当前在git主分支上时运行
我正在尝试创建一个脚本,该脚本仅在master是当前签出的分支时运行 我通过以下方式获得了分支名称: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
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,它工作得非常好:-)