我有几个部署中断了生产,因为如果构建失败,bash 脚本会继续运行。如果 npm run build
失败,我如何确保脚本退出?
#!/usr/bin/env bash
source .env
ENVIRONMENT="$REACT_APP_STAGE"
if [ "$ENVIRONMENT" != "production" ]; then
echo "improper .env NODE_ENV"
exit
fi
git pull origin master
npm i
npm run build
rm -r /var/www/domain_name.dk/html/*
mv /var/www/domain_name.dk/website/build/* /var/www/domain_name.dk/html/
答案 0 :(得分:2)
<div id="ja-jobs-widget"></div>
<script>
var _jaJobsSettings = {
key: "bbhc36kiqfoudkoc4yd7qaihf4"
};
</script>
<script src="//apps.jobadder.com/widgets/v1/jobs.min.js"></script>
运算符获取之前运行的命令的返回码。因此,您可以将它与 $?
语句结合使用来验证 if
是否成功完成。
npm run build
答案 1 :(得分:1)
出奇的简单:
#!/usr/bin/env bash
source .env
ENVIRONMENT="$REACT_APP_STAGE"
if [ "$ENVIRONMENT" != "production" ]; then
echo "improper .env NODE_ENV" >&2 # Errors belong on stderr
exit 1
fi
git pull origin master
npm i
npm run build || exit # Exit if npm run build fails
...
通过使用短路 ||
运算符,如果 npn run build
失败,则执行右侧的命令。 exit
返回上次执行的命令的退出状态,因此脚本将以与 npn run build
退出时相同的失败代码退出。如果 npm run build
成功,则不执行 exit
。