从批处理脚本获取npm调用错误

时间:2019-05-03 10:00:25

标签: node.js angular npm error-handling build

我有一个批处理脚本来部署我的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

0 个答案:

没有答案