{ "name": "carwash-system", "version": "2.0.0", "private": true, "description": "个人自用洗车记录系统 - Vue 3 + Node.js + MySQL/SQLite", "type": "module", "scripts": { "install:all": "npm install && npm install --prefix server && npm install --prefix client && npm run build:client", "build:client": "npm run build --prefix client", "dev": "concurrently -k -n SERVER,CLIENT -c green,cyan \"npm:serve\" \"npm:dev:client\"", "dev:client": "npm run dev --prefix client", "migrate": "node server/src/bin/migrate.js", "serve": "node server/src/bin/serve.js", "users": "node server/src/bin/users.js", "weather": "node server/src/bin/weather.js", "grocy-sync": "node server/src/bin/grocy-sync.js", "grocy-refresh-products": "node server/src/bin/grocy-refresh-products.js", "export": "node server/src/bin/export.js", "backup": "node server/src/bin/backup.js", "seed-demo": "node server/src/bin/seed-demo.js", "verify": "node server/src/bin/verify.js", "lint": "eslint .", "lint:fix": "eslint . --fix", "format": "prettier --write .", "format:check": "prettier --check .", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "lighthouse": "lhci autorun", "lighthouse:pwa": "node client/scripts/check-pwa.mjs", "a11y": "pa11y-ci --config .pa11yci.json http://localhost:4173/login" }, "devDependencies": { "@lhci/cli": "^0.15.1", "@vitest/coverage-v8": "^2.1.9", "concurrently": "^9.0.1", "eslint": "^8.57.0", "husky": "^9.1.0", "lint-staged": "^15.2.0", "pa11y-ci": "^4.1.1", "prettier": "^3.3.3", "supertest": "^7.0.0", "vitest": "^2.1.0", "vue-eslint-parser": "^9.4.3" }, "lint-staged": { "*.{js,vue}": [ "eslint --fix", "prettier --write" ], "*.{json,md,yml,yaml,css}": [ "prettier --write" ] }, "engines": { "node": ">=20" } }