diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
index b96230c..3a93e47 100644
--- a/.github/workflows/e2e.yml
+++ b/.github/workflows/e2e.yml
@@ -71,7 +71,8 @@ jobs:
working-directory: nezha
run: |
mkdir -p cmd/dashboard/admin-dist cmd/dashboard/user-dist
- touch cmd/dashboard/admin-dist/.gitkeep cmd/dashboard/user-dist/.gitkeep
+ printf '
admin e2e\n' > cmd/dashboard/admin-dist/index.html
+ printf 'user e2e\n' > cmd/dashboard/user-dist/index.html
go install github.com/swaggo/swag/cmd/swag@latest
"$(go env GOPATH)/bin/swag" init --pd -d cmd/dashboard -g main.go -o cmd/dashboard/docs
diff --git a/README.md b/README.md
index 536b3fd..eddfd3d 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,8 @@ Then start the backend separately. The shape the CI workflow uses is:
```bash
# in a checkout of nezhahq/nezha
mkdir -p cmd/dashboard/admin-dist cmd/dashboard/user-dist
-touch cmd/dashboard/admin-dist/.gitkeep cmd/dashboard/user-dist/.gitkeep
+printf 'admin e2e\n' > cmd/dashboard/admin-dist/index.html
+printf 'user e2e\n' > cmd/dashboard/user-dist/index.html
go install github.com/swaggo/swag/cmd/swag@latest
"$(go env GOPATH)/bin/swag" init --pd -d cmd/dashboard -g main.go -o cmd/dashboard/docs
diff --git a/vitest.config.ts b/vitest.config.ts
index 212b7b0..9974b93 100644
--- a/vitest.config.ts
+++ b/vitest.config.ts
@@ -7,6 +7,7 @@ export default mergeConfig(
defineConfig({
test: {
environment: "jsdom",
+ exclude: ["tests/e2e/**", "node_modules/**", "dist/**"],
globals: true,
setupFiles: ["./src/test/setup.ts"],
},