From 08e8eea93240f45aa1c9bb011093a159b2163799 Mon Sep 17 00:00:00 2001 From: ryan Date: Mon, 13 Jul 2026 15:04:28 +0800 Subject: [PATCH] fix(frontend): prettier config --- Makefile | 8 +++++++- docs/changelog/index.md | 1 + docs/reference/cli.md | 10 +++++++++- frontend/.prettierignore | 7 +++++++ frontend/.prettierrc.json | 14 ++++++++++++++ frontend/package.json | 4 +++- frontend/pnpm-lock.yaml | 10 ++++++++++ 7 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 frontend/.prettierignore create mode 100644 frontend/.prettierrc.json diff --git a/Makefile b/Makefile index 7a4f3c72..66f038db 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: swagger license license-check build-embedded build-test cross-build code-check build-backend build-frontend build-agent build-relay build-flared build-all +.PHONY: swagger license license-check prettier build-embedded build-test cross-build code-check build-backend build-frontend build-agent build-relay build-flared build-all VERSION ?= dev BUILD_DATE ?= $(shell date -u +'%Y-%m-%dT%H:%M:%SZ') @@ -13,6 +13,12 @@ license: license-check: scripts/update_go_license.sh --check +prettier: + @echo "==> Formatting backend Go source..." + gofmt -w $$(find . -type f -name '*.go' -not -path './.git/*' -not -path './frontend/*') + @echo "==> Formatting frontend source..." + cd frontend && pnpm format + build-embedded: @echo "==> Building embedded frontend version=$(VERSION) build_date=$(BUILD_DATE)..." cd frontend && \ diff --git a/docs/changelog/index.md b/docs/changelog/index.md index 606454df..51f439f8 100644 --- a/docs/changelog/index.md +++ b/docs/changelog/index.md @@ -23,6 +23,7 @@ sidebar: false ### 新增 +- 新增 `make prettier`,统一使用 `gofmt` 与项目固定版本的 Prettier 自动格式化前后端源码。 - WAF 规则支持可视化 DAG 编排、版本冲突保护和有序路由绑定,发布时编译为 OpenResty 纯内存运行图。 - WAF IP 组支持 checksum 驱动的 Worker 内存热刷新,并补充 City MMDB 地区匹配数据源。 diff --git a/docs/reference/cli.md b/docs/reference/cli.md index 06ae84f6..5e338909 100644 --- a/docs/reference/cli.md +++ b/docs/reference/cli.md @@ -40,6 +40,14 @@ GOCACHE=/tmp/openflare-go-cache go test ./... make code-check ``` +自动格式化后端 Go 与前端 TypeScript、JavaScript、CSS 等源码: + +```bash +make prettier +``` + +该命令使用 `gofmt` 格式化后端,并使用项目固定版本的 Prettier 格式化 `frontend/` 源码;构建产物、依赖、公开静态资源和锁文件会被忽略。 + ## Frontend 开发: @@ -155,4 +163,4 @@ pnpm dev ```bash cd docs pnpm build:embed -``` \ No newline at end of file +``` diff --git a/frontend/.prettierignore b/frontend/.prettierignore new file mode 100644 index 00000000..2a686805 --- /dev/null +++ b/frontend/.prettierignore @@ -0,0 +1,7 @@ +.next/ +node_modules/ +out/ +coverage/ +public/ +next-env.d.ts +pnpm-lock.yaml diff --git a/frontend/.prettierrc.json b/frontend/.prettierrc.json new file mode 100644 index 00000000..27f12d83 --- /dev/null +++ b/frontend/.prettierrc.json @@ -0,0 +1,14 @@ +{ + "semi": true, + "singleQuote": true, + "jsxSingleQuote": true, + "trailingComma": "all", + "printWidth": 80, + "tabWidth": 2, + "useTabs": false, + "bracketSpacing": true, + "bracketSameLine": false, + "arrowParens": "always", + "endOfLine": "lf", + "proseWrap": "preserve" +} diff --git a/frontend/package.json b/frontend/package.json index 60ec43b5..57a813f0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,7 +9,8 @@ "build": "next build", "build:embed": "NEXT_STANDALONE_EXPORT=true next build", "start": "next start -p 3010", - "lint": "eslint" + "lint": "eslint", + "format": "prettier --write ." }, "dependencies": { "@codemirror/lang-sql": "^6.10.0", @@ -92,6 +93,7 @@ "eslint": "^9", "eslint-config-next": "15.5.6", "jsdom": "^29.1.1", + "prettier": "^3.9.5", "tailwindcss": "^4", "tw-animate-css": "^1.4.0", "typescript": "^5.9.3", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 71d569e3..fec2f776 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -243,6 +243,9 @@ importers: jsdom: specifier: ^29.1.1 version: 29.1.1 + prettier: + specifier: ^3.9.5 + version: 3.9.5 tailwindcss: specifier: ^4 version: 4.1.16 @@ -3807,6 +3810,11 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prettier@3.9.5: + resolution: {integrity: sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==} + engines: {node: '>=14'} + hasBin: true + pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -8404,6 +8412,8 @@ snapshots: prelude-ls@1.2.1: {} + prettier@3.9.5: {} + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1