节点脚本,带有基于 env var 的 bash 条件



我正在尝试将我的 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 设置。

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

if [ -z "${DEPLOY_URL}" ]

最新更新