我有一个批处理脚本来部署我的Angular 7应用程序。该批处理运行一个npm命令。 该命令有时会失败(因为Angular构建中存在一些错误)。 npm命令失败时如何停止部署脚本?
echo Building the site...
REM I want to know when this command fails:
call npm run build:BUILD_COMMAND
我的build:BUILD_COMMAND
是在我的package.json
中定义的:
"scripts": {
...
"build:BUILD_COMMAND": "ng build -c MY_BUILD_CONFIG",
...
},
echo %ERRORLEVEL%
始终返回0
,即使构建失败(我已经编辑项目以确保每次构建都失败,以便可以测试)。
我尝试将STDOUT
重定向到日志文件,因此可以使用find
命令检查日志中是否包含error
粗体,但它不符合我的需求因为我必须将STDOUT
保留在控制台上:
call npm run build:BUILD_COMMAND > build.log 2>&1
for /f %%a in ('type build.log ^| find /c /i "error"') do set err=%%a
if "%err%" GTR "0" echo ERROR was encountered during build