fix: build all target platforms by default
This commit is contained in:
@@ -38,10 +38,12 @@ choco install make
|
|||||||
|
|
||||||
### 构建命令
|
### 构建命令
|
||||||
|
|
||||||
#### 构建当前平台版本
|
#### 构建全部平台版本(默认)
|
||||||
```bash
|
```bash
|
||||||
make build
|
make build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
该命令会生成 Windows、Linux 和 macOS 的 amd64 可执行文件。
|
||||||
|
|
||||||
#### 构建 Linux 版本(用于服务器部署)
|
#### 构建 Linux 版本(用于服务器部署)
|
||||||
```bash
|
```bash
|
||||||
@@ -94,16 +96,16 @@ make run
|
|||||||
|
|
||||||
## 构建输出
|
## 构建输出
|
||||||
|
|
||||||
构建完成后,`dist` 目录将只包含**单一可执行文件**:
|
执行 `make build` 后,`dist` 目录将包含三个平台包:
|
||||||
|
|
||||||
```
|
```
|
||||||
dist/
|
dist/
|
||||||
└── home-vue-go.exe # Windows单一可执行文件(包含前后端)
|
├── home-vue-go-windows-amd64.exe
|
||||||
或
|
├── home-vue-go-linux-amd64
|
||||||
└── home-vue-go # Linux/macOS单一可执行文件(包含前后端)
|
└── home-vue-go-darwin-amd64
|
||||||
```
|
```
|
||||||
|
|
||||||
**注意**:所有前端文件(HTML、CSS、JavaScript等)都已嵌入到二进制文件中,构建脚本会自动清理dist目录中的前端源文件。
|
所有前端文件(HTML、CSS、JavaScript等)都会分别嵌入三个二进制文件中,构建脚本会自动清理 dist 中的前端源文件。
|
||||||
|
|
||||||
## 运行服务器
|
## 运行服务器
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ BINARY_NAME := home-vue-go
|
|||||||
WINDOWS_TEMP := $(BINARY_NAME)-windows-amd64.exe
|
WINDOWS_TEMP := $(BINARY_NAME)-windows-amd64.exe
|
||||||
LINUX_TEMP := $(BINARY_NAME)-linux-amd64
|
LINUX_TEMP := $(BINARY_NAME)-linux-amd64
|
||||||
DARWIN_TEMP := $(BINARY_NAME)-darwin-amd64
|
DARWIN_TEMP := $(BINARY_NAME)-darwin-amd64
|
||||||
|
ALL_WINDOWS_TEMP := $(BINARY_NAME)-all-windows-amd64.exe
|
||||||
|
ALL_LINUX_TEMP := $(BINARY_NAME)-all-linux-amd64
|
||||||
|
ALL_DARWIN_TEMP := $(BINARY_NAME)-all-darwin-amd64
|
||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
NPM_CMD := npm.cmd
|
NPM_CMD := npm.cmd
|
||||||
@@ -116,17 +119,34 @@ else
|
|||||||
endif
|
endif
|
||||||
@echo [build] Output: $(DIST_DIR)/$(BINARY_NAME)
|
@echo [build] Output: $(DIST_DIR)/$(BINARY_NAME)
|
||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
|
||||||
build: build-windows
|
|
||||||
else
|
|
||||||
build: clean frontend
|
build: clean frontend
|
||||||
@echo [build] Building current platform package...
|
@echo [build] Building Windows amd64 package...
|
||||||
@GOPROXY="$(GOPROXY)" CGO_ENABLED=0 $(GO) build -trimpath -ldflags="-s -w" -o $(BINARY_NAME) .
|
ifeq ($(OS),Windows_NT)
|
||||||
|
@set "GOPROXY=$(GOPROXY)" && set "CGO_ENABLED=0" && set "GOOS=windows" && set "GOARCH=amd64" && $(GO) build -trimpath -ldflags="-s -w" -o $(ALL_WINDOWS_TEMP) .
|
||||||
|
@echo [build] Building Linux amd64 package...
|
||||||
|
@set "GOPROXY=$(GOPROXY)" && set "CGO_ENABLED=0" && set "GOOS=linux" && set "GOARCH=amd64" && $(GO) build -trimpath -ldflags="-s -w" -o $(ALL_LINUX_TEMP) .
|
||||||
|
@echo [build] Building macOS amd64 package...
|
||||||
|
@set "GOPROXY=$(GOPROXY)" && set "CGO_ENABLED=0" && set "GOOS=darwin" && set "GOARCH=amd64" && $(GO) build -trimpath -ldflags="-s -w" -o $(ALL_DARWIN_TEMP) .
|
||||||
|
@if exist $(DIST_DIR) rmdir /s /q $(DIST_DIR)
|
||||||
|
@mkdir $(DIST_DIR)
|
||||||
|
@move /y $(ALL_WINDOWS_TEMP) $(DIST_DIR)\$(BINARY_NAME)-windows-amd64.exe >nul
|
||||||
|
@move /y $(ALL_LINUX_TEMP) $(DIST_DIR)\$(BINARY_NAME)-linux-amd64 >nul
|
||||||
|
@move /y $(ALL_DARWIN_TEMP) $(DIST_DIR)\$(BINARY_NAME)-darwin-amd64 >nul
|
||||||
|
else
|
||||||
|
@GOPROXY="$(GOPROXY)" CGO_ENABLED=0 GOOS=windows GOARCH=amd64 $(GO) build -trimpath -ldflags="-s -w" -o $(ALL_WINDOWS_TEMP) .
|
||||||
|
@echo [build] Building Linux amd64 package...
|
||||||
|
@GOPROXY="$(GOPROXY)" CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GO) build -trimpath -ldflags="-s -w" -o $(ALL_LINUX_TEMP) .
|
||||||
|
@echo [build] Building macOS amd64 package...
|
||||||
|
@GOPROXY="$(GOPROXY)" CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 $(GO) build -trimpath -ldflags="-s -w" -o $(ALL_DARWIN_TEMP) .
|
||||||
@rm -rf $(DIST_DIR) && mkdir -p $(DIST_DIR)
|
@rm -rf $(DIST_DIR) && mkdir -p $(DIST_DIR)
|
||||||
@mv $(BINARY_NAME) $(DIST_DIR)/$(BINARY_NAME)
|
@mv $(ALL_WINDOWS_TEMP) $(DIST_DIR)/$(BINARY_NAME)-windows-amd64.exe
|
||||||
@chmod +x $(DIST_DIR)/$(BINARY_NAME)
|
@mv $(ALL_LINUX_TEMP) $(DIST_DIR)/$(BINARY_NAME)-linux-amd64
|
||||||
@echo [build] Output: $(DIST_DIR)/$(BINARY_NAME)
|
@mv $(ALL_DARWIN_TEMP) $(DIST_DIR)/$(BINARY_NAME)-darwin-amd64
|
||||||
|
@chmod +x $(DIST_DIR)/$(BINARY_NAME)-linux-amd64 $(DIST_DIR)/$(BINARY_NAME)-darwin-amd64
|
||||||
endif
|
endif
|
||||||
|
@echo [build] Output: $(DIST_DIR)/$(BINARY_NAME)-windows-amd64.exe
|
||||||
|
@echo [build] Output: $(DIST_DIR)/$(BINARY_NAME)-linux-amd64
|
||||||
|
@echo [build] Output: $(DIST_DIR)/$(BINARY_NAME)-darwin-amd64
|
||||||
|
|
||||||
dist: build
|
dist: build
|
||||||
|
|
||||||
@@ -145,9 +165,12 @@ ifeq ($(OS),Windows_NT)
|
|||||||
@if exist $(WINDOWS_TEMP) del /f /q $(WINDOWS_TEMP)
|
@if exist $(WINDOWS_TEMP) del /f /q $(WINDOWS_TEMP)
|
||||||
@if exist $(LINUX_TEMP) del /f /q $(LINUX_TEMP)
|
@if exist $(LINUX_TEMP) del /f /q $(LINUX_TEMP)
|
||||||
@if exist $(DARWIN_TEMP) del /f /q $(DARWIN_TEMP)
|
@if exist $(DARWIN_TEMP) del /f /q $(DARWIN_TEMP)
|
||||||
|
@if exist $(ALL_WINDOWS_TEMP) del /f /q $(ALL_WINDOWS_TEMP)
|
||||||
|
@if exist $(ALL_LINUX_TEMP) del /f /q $(ALL_LINUX_TEMP)
|
||||||
|
@if exist $(ALL_DARWIN_TEMP) del /f /q $(ALL_DARWIN_TEMP)
|
||||||
else
|
else
|
||||||
@rm -rf $(DIST_DIR)
|
@rm -rf $(DIST_DIR)
|
||||||
@rm -f $(BINARY_NAME) $(BINARY_NAME).exe $(WINDOWS_TEMP) $(LINUX_TEMP) $(DARWIN_TEMP)
|
@rm -f $(BINARY_NAME) $(BINARY_NAME).exe $(WINDOWS_TEMP) $(LINUX_TEMP) $(DARWIN_TEMP) $(ALL_WINDOWS_TEMP) $(ALL_LINUX_TEMP) $(ALL_DARWIN_TEMP)
|
||||||
endif
|
endif
|
||||||
@echo [clean] Done.
|
@echo [clean] Done.
|
||||||
|
|
||||||
|
|||||||
@@ -132,6 +132,13 @@ make build-linux
|
|||||||
make build-windows
|
make build-windows
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**构建全部平台:**
|
||||||
|
```bash
|
||||||
|
make build
|
||||||
|
```
|
||||||
|
|
||||||
|
该命令会生成 Windows、Linux 和 macOS amd64 可执行文件;需要单独构建某个平台时使用对应的 `make build-windows`、`make build-linux` 或 `make build-darwin`。
|
||||||
|
|
||||||
**构建前端:**
|
**构建前端:**
|
||||||
```bash
|
```bash
|
||||||
npm install
|
npm install
|
||||||
|
|||||||
Reference in New Issue
Block a user