如果 React 构建失败,则停止 bash 脚本
stop bash script if react build fails
我有几个部署中断了生产,因为如果构建失败,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/
$?
运算符获取先前 运行 命令的 return 代码。因此,您可以将它与 if
语句结合使用来验证 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
if [ $? -eq 0 ]; then
echo "npm run build successful"
else
echo "npm run build failed" >&2
exit 1
fi
rm -r /var/www/domain_name.dk/html/*
mv /var/www/domain_name.dk/website/build/* /var/www/domain_name.dk/html/
出乎意料的简单:
#!/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
returns 最后执行的命令的退出状态,因此脚本将以与 npn run build
相同的失败代码退出。如果 npm run build
成功,则 exit
不会执行。
我有几个部署中断了生产,因为如果构建失败,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/
$?
运算符获取先前 运行 命令的 return 代码。因此,您可以将它与 if
语句结合使用来验证 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
if [ $? -eq 0 ]; then
echo "npm run build successful"
else
echo "npm run build failed" >&2
exit 1
fi
rm -r /var/www/domain_name.dk/html/*
mv /var/www/domain_name.dk/website/build/* /var/www/domain_name.dk/html/
出乎意料的简单:
#!/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
returns 最后执行的命令的退出状态,因此脚本将以与 npn run build
相同的失败代码退出。如果 npm run build
成功,则 exit
不会执行。