@delucis/if-env (英语)
如果环境变量匹配模式, 运行 npm 脚本
这是埃里克·克莱蒙斯的叉子 if-env。它允许您使用通配符匹配环境变量(*)而不是使用简单的字符串平等. 见辛德雷·索胡斯 matcher 详细介绍匹配方法.
安装
npm install --save @delucis/if-env
使用量
此软件包安装 if-env,这个脚本可以方便地将环境变量值与使用通配符的图案相匹配。 它还包括 if-env-cs,这是 区分大小写。 。 。 .
如果你想有条件地运行一个国家预防机制脚本,取决于环境变量的价值,你可以使用 if-env 在你身边 package.json在这个例子中,我们只想运行我们的 test 脚本当 SOME_VAR 变量起始于 new数字 :
"scripts": {
"test": "if-env SOME_VAR=new* && npm run test-suite"
}
多重条件
如果你想要满足几个条件 你可以把它们都传给 if-env数字 :
"scripts": {
"yay": "if-env VAR1=woo* VAR2=*hoo && echo yay"
}
如果您想要运行一个脚本, 如果您满足了其中任一条件, 您可以使用 || 运算符 :
"scripts": {
"moo": "if-env ANIMAL=cow || if-env ANIMAL=bull* && echo moo"
}
如果您想根据变量的值做不同的事情,您也可以使用 || 运算符 :
"scripts": {
"joy": "if-env MOOD=happy && echo 😄 || echo 😭"
}
取消条件
如果你想做一些事情,如果一个变量做 没有 匹配模式,您有两个选项。 注意第一个例子中的单词;它们逃跑了 ! 为了你的外壳.
"scripts": {
"ifenv": "if-env MOOD='!happy' && echo 😭",
"shell": "if-env MOOD=happy || echo 😭"
}
逃脱字符
如果您需要您的图案中设置空格, 请确保您用引文将其包裹 :
"scripts": {
"spacious": "if-env SENTENCE='I want * spaces.' && echo You get spaces!"
}
案件敏感性
if-env 案件不敏感,这意味着 if-env VAR=foo 将两者匹配 foo 财务报告和审定财务报表 FOO如果您需要测试变量和大小写很重要,请使用 if-env-cs 命令 :
"scripts": {
"case": "if-env-cs WORD=lower && echo nice! || echo STOP SHOUTING!"
}