基于env var

时间:2018-01-30 16:40:07

标签: bash shell

我正在尝试将我的npm脚本设置为根据环境以不同的方式运行。我想检查是否存在process.env.DEPLOY_URL,并根据此情况运行单独的脚本。

现在,我有 -

"build": "if [[ -z ${DEPLOY_URL} ]]; then npm run test:integration; else webpack --config webpack.prod.config.js --colors; fi"

但是,正在运行它的命令行是

sh: 1: [[: not found

process.env.DEPLOY_URL可用时会发生这种情况,因此当我不想要它时它会触及其他内容。我猜测运行它的命令行没有bash。寻找一种解决方法 - 或通过npm脚本实现此目的的任何方式。谢谢!

我正在寻找可能会使用https://github.com/ericclemmons/if-env之类的东西,但就我所知,它没有!env.var设置。

1 个答案:

答案 0 :(得分:2)

您可能正在运行一个shell,它使用符合POSIX的shell sh,其中[[运算符不存在。这是bash特定功能。要使脚本使用符合POSIX的字符串空检查运算符,请使用[运算符

if [ -z "${DEPLOY_URL}" ]