预启动场景。
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关闭。