#!/usr/bin/env bash # 启动脚本:一条命令完成依赖安装 + 基础验证 + 打印启动命令。 # # 用法: # bash harness/init.sh # 安装依赖 + 跑验证 + 打印启动命令 # RUN_START_COMMAND=1 bash harness/init.sh # 验证通过后直接启动开发服务器 # # 验证失败时应当**停下来先修基础状态**,不要在坏的基础上继续叠新功能。 set -u # ── 按项目实际情况修改这三个变量 ──────────────────────────────────────────── INSTALL_CMD="npm install" VERIFY_CMD="npm run build" START_CMD="npm run dev" # ──────────────────────────────────────────────────────────────────────────── # 切到仓库根目录(脚本可能在任意位置被调用) SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" cd "$REPO_ROOT" || exit 1 echo "==============================================" echo " 仓库根目录" echo "==============================================" pwd echo "" echo "==============================================" echo " 最近提交" echo "==============================================" if git rev-parse --git-dir >/dev/null 2>&1; then if git rev-parse HEAD >/dev/null 2>&1; then git log --oneline -5 else echo "(仓库尚无任何提交——跳过。初始提交由用户自行完成。)" fi else echo "(不是 git 仓库——跳过)" fi echo "" echo "==============================================" echo " 安装依赖" echo "==============================================" echo "\$ ${INSTALL_CMD}" if ! ${INSTALL_CMD}; then echo "" echo "!! 依赖安装失败——先解决它,不要在坏的基础上继续。" >&2 exit 1 fi echo "" echo "==============================================" echo " 基础验证" echo "==============================================" echo "\$ ${VERIFY_CMD}" if ! ${VERIFY_CMD}; then echo "" echo "!! 基础验证失败——先修好再开工,不要在上面叠新功能。" >&2 exit 1 fi echo "" echo "基础验证通过。" echo "" echo "==============================================" echo " 启动命令" echo "==============================================" echo "\$ ${START_CMD}" echo "" echo "提示:开发服务器为 HTTPS(自签证书),浏览器首次访问会有证书告警,属正常现象。" echo " 聊天接口走同源代理 /chat-api,无需额外配置。" echo "" if [ "${RUN_START_COMMAND:-0}" = "1" ]; then echo "RUN_START_COMMAND=1,正在启动……" exec ${START_CMD} fi