ソースを参照

fix: Windows 启动器改为 CRLF + goto 结构,兼容双击环境

- 批处理文件统一 CRLF 换行(LF 会导致 cmd 解析异常、窗口一闪而过)
- 去掉括号块,改用 goto 标签,降低解析失败概率
- 补 node/npm 常见安装路径(Program Files / nvm-windows / LOCALAPPDATA),
  解决「终端 npm start 能跑、双击启动找不到 node」的 PATH 差异
- 任何失败分支都会 pause,窗口不再自动关闭
liangzhao 2 週間 前
親
コミット
5bf618db9e
1 ファイル変更、58 行追加、33 行削除
  1. 58 33
      启动.bat

+ 58 - 33
启动.bat

@@ -1,51 +1,76 @@
 @echo off
 chcp 65001 >nul
 title 智慧运营中台
+setlocal
 cd /d "%~dp0"
 
 echo ============================================
 echo   智慧运营中台 - Windows 启动器
-echo   目录:%CD%
+echo   目录: %CD%
 echo ============================================
 echo.
 
+rem Add common Node.js install paths for double-click launch
+set "NODE_EXE="
+if exist "%ProgramFiles%\nodejs\node.exe" set "NODE_EXE=%ProgramFiles%\nodejs\node.exe"
+if exist "%ProgramFiles(x86)%\nodejs\node.exe" set "NODE_EXE=%ProgramFiles(x86)%\nodejs\node.exe"
+if exist "%NVM_SYMLINK%\node.exe" set "NODE_EXE=%NVM_SYMLINK%\node.exe"
+if exist "%LOCALAPPDATA%\Programs\nodejs\node.exe" set "NODE_EXE=%LOCALAPPDATA%\Programs\nodejs\node.exe"
+if not defined NODE_EXE goto check_node
+for %%i in ("%NODE_EXE%") do set "PATH=%%~dpi;%PATH%"
+:check_node
+
 where node >nul 2>nul
-if errorlevel 1 (
-  echo [错误] 未检测到 Node.js。
-  echo 请先安装 Node.js 22.13 或更高版本:https://nodejs.org/
-  echo 安装后重新打开本窗口再试。
-  echo.
-  pause
-  exit /b 1
-)
-
-node -e "const [a,b]=process.versions.node.split('.').map(Number);if(a<22||(a===22&&b<13)){console.error('当前 Node.js '+process.version+' 过低,需要 22.13 及以上。');process.exit(1)}"
-if errorlevel 1 (
-  echo.
-  pause
-  exit /b 1
-)
-
-echo 使用 Node:%CD%
+if errorlevel 1 goto no_node
+
+node -e "const v=process.versions.node.split('.').map(Number);if(v[0]<22||(v[0]==22&&v[1]<13)){process.exit(1)}"
+if errorlevel 1 goto bad_node
+
+where npm >nul 2>nul
+if errorlevel 1 goto no_npm
+
+echo Node 版本:
 node -v
 echo.
 
-if not exist node_modules (
-  echo 正在安装依赖(首次启动需要几分钟)...
-  call npm install
-  if errorlevel 1 (
-    echo.
-    echo [错误] 依赖安装失败。请检查网络,或手动在命令行执行:npm install
-    pause
-    exit /b 1
-  )
-)
-
-echo 正在启动服务,启动后请保持本窗口不要关闭...
-echo 浏览器访问:http://localhost:5177
+if exist node_modules goto start
+
+echo 首次启动,正在安装依赖(需要联网,可能需要几分钟)...
+call npm install
+if errorlevel 1 goto install_fail
+
+:start
+echo 正在启动服务,请保持本窗口不要关闭...
+echo 浏览器访问: http://localhost:5177
 echo.
 call npm start
+echo.
+echo 服务已退出。
+goto end
+
+:no_node
+echo [错误] 未检测到 Node.js。
+echo 请安装 Node.js 22.13 或更高版本: https://nodejs.org/
+echo 安装后重新打开本窗口再试。
+goto end
+
+:bad_node
+echo [错误] Node.js 版本过低:
+node -v
+echo 需要 22.13 或更高版本,请升级后重试。
+goto end
+
+:no_npm
+echo [错误] 未检测到 npm(通常随 Node.js 一起安装)。
+goto end
+
+:install_fail
+echo [错误] 依赖安装失败。
+echo 请检查网络,或在命令行手动执行: npm install
+goto end
 
+:end
 echo.
-echo 服务已退出。若上方有报错信息,请截图反馈。
-pause
+echo 按任意键关闭窗口...
+pause >nul
+exit /b 0