@echo off setlocal rem ============================================================ rem [编码提醒] 本文件必须保存为 GBK / ANSI 编码,CRLF 行尾。 rem 存成 UTF-8 会让 cmd 解析中文出错,脚本直接跑不起来。 rem 用 VS Code 编辑时,右下角编码要选 GB2312/GBK 再保存。 rem ============================================================ rem cmsp 开发模式启动脚本 rem rem 双击本文件即可启动开发模式:改前端代码会自动刷新, rem 改 Go 代码会自动重新编译。调试界面问题用这个,不要用 build.bat。 rem rem 想打包成给同事用的 exe,请双击 build.bat。 rem rem 遇到报错先看提示里的「怎么修」,照着做通常就好了。 rem 实在解决不了,把整个黑窗口截图发给维护者。 rem ============================================================ cd /d "%~dp0" echo. echo ============================================================ echo cmsp 开发模式 echo ============================================================ echo. rem ---------- 检查 1:Go ---------- echo [1/5] 检查 Go ... where go >nul 2>nul if errorlevel 1 ( echo. echo [X] 没有找到 go 命令。 echo. echo 怎么修: echo 1. 到 https://go.dev/dl/ 下载 Go 并安装 echo 2. 装完关掉这个窗口,重新双击本脚本 echo ^(装完必须重开窗口,否则读不到新的 PATH^) echo. goto :fail ) for /f "tokens=3" %%v in ('go version') do set GOVER=%%v echo OK %GOVER% rem 本机 Go 可能低于 Wails 要求的版本,靠 GOTOOLCHAIN 自动下载补齐。 rem 这是 Go 官方机制,第一次构建会联网拉工具链,属于正常现象。 echo 提示:go.mod 要求的版本可能高于本机 Go, echo Go 会自动下载对应工具链,第一次需要联网。 rem ---------- 检查 2:Node ---------- echo [2/5] 检查 Node.js ... where node >nul 2>nul if errorlevel 1 ( echo. echo [X] 没有找到 node 命令。 echo. echo 怎么修: echo 1. 到 https://nodejs.org/ 下载 LTS 版本并安装 echo 2. 装完关掉这个窗口,重新双击本脚本 echo. goto :fail ) for /f %%v in ('node --version') do set NODEVER=%%v echo OK %NODEVER% rem ---------- 检查 3:Wails CLI ---------- echo [3/5] 检查 Wails 命令行工具 ... set "WAILS=" where wails >nul 2>nul if not errorlevel 1 set "WAILS=wails" rem where 找不到时,再去 Go 的默认安装目录找一次。 rem 很多人装完 Go 工具没把 %GOPATH%\bin 加进 PATH,这里兜住。 if not defined WAILS ( for /f "delims=" %%p in ('go env GOPATH') do ( if exist "%%p\bin\wails.exe" set "WAILS=%%p\bin\wails.exe" ) ) if not defined WAILS ( echo. echo [X] 没有找到 wails 命令。 echo. echo 怎么修:在这个窗口里执行下面这条命令,装完再重新双击本脚本 echo. echo go install github.com/wailsapp/wails/v2/cmd/wails@latest echo. echo 注意要装 v2,不要装 v3。本项目用的是 Wails v2 稳定版。 echo. goto :fail ) echo OK 找到 wails rem ---------- 检查 4:配置文件 ---------- echo [4/5] 检查配置文件 ... if not exist "config.yaml" ( echo config.yaml 不存在,从模板复制一份 ... if exist "config.example.yaml" ( copy /y "config.example.yaml" "config.yaml" >nul echo 已生成 config.yaml echo. echo 注意:里面的账号密码还是模板里的占位值。 echo 程序启动后到「参数设置」页填真实账号, echo 或者直接用记事本编辑 config.yaml。 echo. ) else ( echo 没有 config.example.yaml,跳过。 echo 程序会用内置默认值启动,到「参数设置」页填即可。 ) ) else ( echo OK config.yaml 已存在 ) rem ---------- 检查 5:前端依赖 ---------- echo [5/5] 检查前端依赖 ... if not exist "frontend\node_modules" ( echo node_modules 不存在,开始安装,第一次要几分钟 ... pushd frontend call npm install if errorlevel 1 ( popd echo. echo [X] npm install 失败。 echo. echo 怎么修: echo 1. 确认能上网 echo 2. 公司网络受限时换个镜像源再试: echo npm config set registry https://registry.npmmirror.com echo 3. 还不行就删掉 frontend\node_modules 和 echo frontend\package-lock.json 再跑一次 echo. goto :fail ) popd echo 依赖安装完成 ) else ( echo OK 依赖已安装 ) rem ---------- 启动 ---------- echo. echo ============================================================ echo 一切就绪,正在启动开发模式 ... echo. echo 窗口打开后: echo - 改 frontend\src 下的文件,界面会自动刷新 echo - 改 .go 文件,程序会自动重新编译并重启 echo - 按 Ctrl+C 或关掉这个黑窗口即可停止 echo. echo 第一次启动要编译,可能等十几秒,属于正常。 echo ============================================================ echo. "%WAILS%" dev set RESULT=%errorlevel% if not "%RESULT%"=="0" ( echo. echo [X] 开发模式异常退出,错误码 %RESULT% echo. echo 常见原因: echo - Go 代码有编译错误:往上翻,找红色的报错行 echo - 端口被占用:关掉之前没退干净的 cmsp 窗口再试 echo - 依赖没下全:执行 go mod download 后重试 echo. goto :fail ) echo. echo 开发模式已退出。 goto :done :fail echo. echo ============================================================ echo 启动失败。上面写了怎么修,照着做通常就好。 echo 解决不了就把这个窗口截图发给维护者。 echo ============================================================ echo. pause exit /b 1 :done echo. pause exit /b 0