From ef6281ef831981f81ce33506ae4d22a60bcb41fb Mon Sep 17 00:00:00 2001 From: wang Date: Fri, 26 Jun 2026 16:35:47 +0000 Subject: [PATCH] fix --- Makefile | 55 +++++++++++++++++++++++++++++++++ frontend/package-lock.json | 63 -------------------------------------- 2 files changed, 55 insertions(+), 63 deletions(-) diff --git a/Makefile b/Makefile index 29659b5..249a020 100644 --- a/Makefile +++ b/Makefile @@ -86,6 +86,61 @@ dev: ## [dev] 顯示本機開發要開的終端 @echo " 4) make dev-node-worker # node worker(需 style-8d 時)" @echo " 5) make dev-frontend # 前端 :5173" +# ============================================================ +# 安裝依賴(新機器 clone 後執行一次) +# ============================================================ + +.PHONY: bootstrap-sys +bootstrap-sys: ## [需 sudo] 安裝系統依賴(Go, Node.js, Docker, Nginx)— Ubuntu 專用 + @echo "=== 安裝系統套件: nginx, curl, gnupg ===" + sudo apt-get update -qq + sudo apt-get install -y -qq nginx curl gnupg ca-certificates + @echo "" + @echo "=== 安裝 Go 1.22+ ===" + @GO_VER=$$(curl -sL https://go.dev/VERSION?m=text 2>/dev/null | head -1 || echo "go1.22"); \ + echo "下載 $$GO_VER.linux-amd64.tar.gz"; \ + curl -sL "https://go.dev/dl/$$GO_VER.linux-amd64.tar.gz" -o /tmp/go.tar.gz && \ + sudo rm -rf /usr/local/go && \ + sudo tar -C /usr/local -xzf /tmp/go.tar.gz && \ + rm /tmp/go.tar.gz; \ + echo 'export PATH=/usr/local/go/bin:$$PATH' | sudo tee /etc/profile.d/go.sh + @echo "" + @echo "=== 安裝 Node.js LTS ===" + curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - + sudo apt-get install -y -qq nodejs + @echo "" + @echo "=== 安裝 Docker Engine + Compose ===" + curl -fsSL https://get.docker.com | sudo sh + sudo usermod -aG docker $(USER) 2>/dev/null || true + @echo "" + @echo "=== 安裝 Nginx ===" + sudo apt-get install -y -qq nginx + @echo "" + @echo "✓ 系統依賴安裝完成。" + @echo " 登出再登入後,Go/Node/Docker 即可使用(group 變更生效)。" + @echo " 接著執行 make bootstrap 安裝專案層依賴。" + @echo "" + +.PHONY: bootstrap +bootstrap: ## 安裝專案層依賴(Go modules + npm + Playwright),需先執行 make bootstrap-sys + @echo "=== [1/4] Go modules ===" + cd $(BACKEND_DIR) && go mod tidy + @echo "" + @echo "=== [2/4] 前端 npm ===" + cd $(FRONTEND_DIR) && npm install + @echo "" + @echo "=== [3/4] Node worker npm ===" + cd $(BACKEND_DIR)/worker && npm install + @echo "" + @echo "=== [4/4] Playwright 瀏覽器(chromium)+ 系統依賴 ===" + cd $(BACKEND_DIR)/worker && sudo npx playwright install --with-deps chromium + @echo "" + @echo "✓ 全裝完成。後續步驟:" + @echo " 1) make dev-infra # 起 Mongo/Redis (Docker)" + @echo " 2) make dev-init # 初始化 DB + 建立 admin" + @echo " 3) make dev-backend # 啟動 gateway (:8890)" + @echo " 4) sudo make install # 正式部署(含 systemd + nginx)" + # ============================================================ # BUILD (prod 產物) # ============================================================ diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 959380f..692517f 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -899,9 +899,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -916,9 +913,6 @@ "arm" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -933,9 +927,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -950,9 +941,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -967,9 +955,6 @@ "loong64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -984,9 +969,6 @@ "loong64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1001,9 +983,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1018,9 +997,6 @@ "ppc64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1035,9 +1011,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1052,9 +1025,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1069,9 +1039,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1086,9 +1053,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1103,9 +1067,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1329,9 +1290,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1349,9 +1307,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1369,9 +1324,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1389,9 +1341,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2327,9 +2276,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2351,9 +2297,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2375,9 +2318,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2399,9 +2339,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [