基于env-var的带bash条件的节点脚本
我正在尝试设置我的npm脚本,使其根据环境的不同运行。我想检查是否存在基于env-var的带bash条件的节点脚本,bash,shell,Bash,Shell,我正在尝试设置我的npm脚本,使其根据环境的不同运行。我想检查是否存在process.env.DEPLOY\u URL,并根据这一点运行单独的脚本 现在,我有- “构建”:“如果[-z${DEPLOY\u URL}]];那么npm运行测试:集成;否则webpack--config webpack.prod.config.js--colors;fi” 但是,运行该命令的命令行是 sh:1:[:未找到 这是在process.env.DEPLOY\u URL可用时发生的,因此它会在我不希望的情况下命中
process.env.DEPLOY\u URL
,并根据这一点运行单独的脚本
现在,我有-
“构建”:“如果[-z${DEPLOY\u URL}]];那么npm运行测试:集成;否则webpack--config webpack.prod.config.js--colors;fi”
但是,运行该命令的命令行是
sh:1:[:未找到
这是在process.env.DEPLOY\u URL
可用时发生的,因此它会在我不希望的情况下命中else。我猜正在运行此命令的命令行没有bash。正在寻找修复此问题的方法-或者通过npm脚本实现此目的的任何方法。谢谢
我正在考虑可能使用的东西,但据我所知,它没有!env.var设置。您可能正在运行一个shell,该shell使用兼容POSIX的shell
sh
,其中[[
运算符不存在。它是特定于bash
的功能。要使脚本使用符合POSIX的字符串空检查运算符,请使用[
运算符
if [ -z "${DEPLOY_URL}" ]
节点脚本正在运行bourne shell
sh
,该脚本与POSIX兼容,但CHC不理解该脚本,该脚本也是bourne特定的construct@Inian好的,谢谢!你能告诉我如何处理这个问题吗?非常感谢!将[-z${DEPLOY\u URL}]
更改为[-z${DEPLOY\u URL}”]
并查看worked@Inian成功了!如果你想提交答案,我会标记为正确。再次感谢你!