如果反应构建失败,则停止 bash 脚本

时间:2021-06-10 01:11:19

标签: reactjs bash npm build

我有几个部署中断了生产,因为如果构建失败,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/

2 个答案:

答案 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