NPM使用并发运行脚本,但以成功构建为条件

时间:2017-06-06 19:00:04

标签: node.js npm

预启动场景。

Node.js应用程序
这是package.json中的“scripts”部分:

  "scripts": {    
    "build": "tsc -p app/",
    "build:watch": "tsc -p app/ --watch",
    "start_server": "lite-server -c=bs-config.json",
    "prestart": "npm run build",
    "start_dev": "concurrently \"npm run build:watch\" \"npm run start_server\""
  }

要启动开发服务器,我运行:npm run start_dev

这个问题是这样的事实,如果构建失败(= tsc -p app/返回一些错误)我无法看到它,因为无论如何服务器已启动并且“watch”以连续输出填充控制台

我在生产中部署代码时遇到了很多错误,而“构建”脚本无法返回代码中出现的错误。

我想要类似的东西:

"start_dev": "\"npm run prestart\" THEN concurrently \"npm run build:watch\" \"npm run start_server\""

所以只有在构建命令以“0”(无错误)退出时才会调用npm run start_server

建议达到这个结果? 如何“有条件地”将“start_dev”运行到“预启动”脚本?

谢谢,

亚历

[更新]
作为一种解决方法,我使用带有以下命令的Windows批处理文件:

call npm run build

IF %ERRORLEVEL% neq 0 GOTO :ERROR

:: no error, run it
npm run start_dev

GOTO END

:ERROR

echo.
echo.
echo Error level for build is "%ERRORLEVEL%".
echo Check the error(s).
echo.

pause

:END

请注意。如果构建错误,则需要使用“call”来防止shell关闭。

0 个答案:

没有答案