2 コミット 210777c7a2 ... efd0ba989d

作者 SHA1 メッセージ 日付
  liangzhao efd0ba989d chore: 固定换行符(.bat=CRLF,.command/.sh=LF) 2 週間 前
  liangzhao 5bf618db9e fix: Windows 启动器改为 CRLF + goto 结构,兼容双击环境 2 週間 前
2 ファイル変更、64 行追加、33 行削除
  1. 6 0
      .gitattributes
  2. 58 33
      启动.bat

+ 6 - 0
.gitattributes

@@ -0,0 +1,6 @@
+# Windows 启动脚本必须 CRLF,否则 cmd 解析异常(窗口一闪而过)
+*.bat   text eol=crlf
+*.cmd   text eol=crlf
+# macOS / Linux 脚本保持 LF
+*.command text eol=lf
+*.sh      text eol=lf

+ 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