我正在尝试将我的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设置。
答案 0 :(得分:2)
您可能正在运行一个shell,它使用符合POSIX的shell sh
,其中[[
运算符不存在。这是bash
特定功能。要使脚本使用符合POSIX的字符串空检查运算符,请使用[
运算符
if [ -z "${DEPLOY_URL}" ]