chore: 为 Admin 启动脚本增加热重载 (#13)
This commit is contained in:
@@ -10,6 +10,8 @@ dist/
|
|||||||
*.spec
|
*.spec
|
||||||
admin/admin.exe
|
admin/admin.exe
|
||||||
admin/admin
|
admin/admin
|
||||||
|
admin/admin-dev.exe
|
||||||
|
admin/tmp/
|
||||||
|
|
||||||
# Excel 打开时生成的锁文件
|
# Excel 打开时生成的锁文件
|
||||||
~$*.xlsx
|
~$*.xlsx
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
root = "."
|
||||||
|
tmp_dir = "tmp"
|
||||||
|
|
||||||
|
[build]
|
||||||
|
cmd = "go build -o ./admin-dev.exe ."
|
||||||
|
bin = "admin-dev.exe"
|
||||||
|
include_ext = ["go", "html", "css", "js"]
|
||||||
|
exclude_dir = ["data", "tmp", "testdata"]
|
||||||
|
exclude_regex = ["_test\\.go"]
|
||||||
|
exclude_unchanged = true
|
||||||
|
delay = 500
|
||||||
|
stop_on_error = true
|
||||||
|
send_interrupt = false
|
||||||
|
kill_delay = "500ms"
|
||||||
|
|
||||||
|
[log]
|
||||||
|
time = true
|
||||||
|
|
||||||
|
[misc]
|
||||||
|
clean_on_exit = true
|
||||||
|
|
||||||
|
[screen]
|
||||||
|
clear_on_rebuild = false
|
||||||
|
keep_scroll = true
|
||||||
@@ -67,6 +67,20 @@ go get github.com/xuri/excelize/v2@v2.9.1
|
|||||||
|
|
||||||
## 3. 跑起来
|
## 3. 跑起来
|
||||||
|
|
||||||
|
推荐在仓库根目录运行热重载脚本:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
cd D:\chengma\cmautobuy
|
||||||
|
.\run_admin.bat
|
||||||
|
```
|
||||||
|
|
||||||
|
脚本第一次运行时会自动安装与 Go 1.23 兼容的
|
||||||
|
`github.com/air-verse/air@v1.61.7`,以后会直接使用已安装的固定版本。
|
||||||
|
保存 Go、HTML、CSS 或 JavaScript 文件后,Air 会自动重新编译并重启 Admin;
|
||||||
|
按 `Ctrl+C` 停止。
|
||||||
|
|
||||||
|
如果只想临时运行一次、不需要热重载,也可以:
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
cd D:\chengma\cmautobuy\admin
|
cd D:\chengma\cmautobuy\admin
|
||||||
go run .
|
go run .
|
||||||
@@ -76,8 +90,6 @@ go run .
|
|||||||
|
|
||||||
**这个命令是安全的**:Admin 只管理数据,不会连手机、不会下单。放心随便跑。
|
**这个命令是安全的**:Admin 只管理数据,不会连手机、不会下单。放心随便跑。
|
||||||
|
|
||||||
改了代码要重启才生效(Go 不像 Python 那样改完就生效)。按 `Ctrl+C` 停掉再 `go run .`。
|
|
||||||
|
|
||||||
## 4. 你应该看到什么
|
## 4. 你应该看到什么
|
||||||
|
|
||||||
左边(或顶部)是四个模块的导航:
|
左边(或顶部)是四个模块的导航:
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
@echo off
|
||||||
|
setlocal
|
||||||
|
|
||||||
|
set "AIR_VERSION=v1.61.7"
|
||||||
|
|
||||||
|
cd /d "%~dp0admin"
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo [ERROR] Cannot enter the admin directory.
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
where go >nul 2>&1
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo [ERROR] Go was not found. Install Go 1.23.0 and reopen the terminal.
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
for /f "usebackq delims=" %%G in (`go env GOPATH`) do set "ADMIN_GOPATH=%%G"
|
||||||
|
if not defined ADMIN_GOPATH (
|
||||||
|
echo [ERROR] Cannot read GOPATH.
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
set "AIR_EXE=%ADMIN_GOPATH%\bin\air.exe"
|
||||||
|
set "NEED_INSTALL=0"
|
||||||
|
if not exist "%AIR_EXE%" set "NEED_INSTALL=1"
|
||||||
|
|
||||||
|
if exist "%AIR_EXE%" (
|
||||||
|
"%AIR_EXE%" -v 2>nul | findstr /c:"%AIR_VERSION%" >nul
|
||||||
|
if errorlevel 1 set "NEED_INSTALL=1"
|
||||||
|
)
|
||||||
|
|
||||||
|
if "%NEED_INSTALL%"=="1" (
|
||||||
|
echo [INFO] Installing Air %AIR_VERSION% for Go 1.23...
|
||||||
|
go install github.com/air-verse/air@%AIR_VERSION%
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo [ERROR] Air installation failed. Check the network and GOPROXY.
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
echo [INFO] Starting Admin with hot reload. Press Ctrl+C to stop.
|
||||||
|
"%AIR_EXE%" -c .air.toml
|
||||||
|
set "ADMIN_EXIT_CODE=%ERRORLEVEL%"
|
||||||
|
|
||||||
|
if not "%ADMIN_EXIT_CODE%"=="0" (
|
||||||
|
echo [ERROR] Admin stopped with exit code %ADMIN_EXIT_CODE%.
|
||||||
|
pause
|
||||||
|
)
|
||||||
|
|
||||||
|
endlocal & exit /b %ADMIN_EXIT_CODE%
|
||||||
Reference in New Issue
Block a user