{ "name": "fastapiadmin", "description": "Vue3 + Vite + TypeScript + Element-Plus 的后台管理模板", "version": "3.0.0", "private": true, "type": "module", "scripts": { "i": "pnpm install", "dev": "vite", "dev:force": "vite --force", "prod": "vite --mode prod", "build": "vue-tsc --noEmit && vite build", "build:pro": "pnpm vite build --mode pro", "build:gitee": "pnpm vite build --mode gitee", "build:dev": "pnpm vite build --mode dev", "build:test": "pnpm vite build --mode test", "serve:pro": "pnpm vite preview --mode pro", "serve:dev": "pnpm vite preview --mode dev", "serve:test": "pnpm vite preview --mode test", "clean": "pnpx rimraf node_modules", "ts:check": "pnpm vue-tsc --noEmit --skipLibCheck", "npm:check": "pnpx npm-check-updates -u", "clean:cache": "pnpx rimraf node_modules/.cache node_modules/.vite", "prepare": "husky", "icon": "esno ./scripts/icon.ts", "preview": "vite preview", "type-check": "vue-tsc --noEmit", "test": "vitest run", "test:watch": "vitest", "lint": "pnpm run lint:eslint && pnpm run lint:prettier && pnpm run lint:stylelint", "lint:eslint": "eslint --cache \"src/**/*.{vue,ts,js}\" --fix", "lint:prettier": "prettier --write \"**/*.{js,cjs,ts,json,tsx,css,less,scss,vue,html,md}\"", "lint:stylelint": "stylelint \"**/*.{css,scss,vue}\" --cache --fix", "commit": "git-cz", "clean:dev": "tsx scripts/clean-dev.ts" }, "config": { "commitizen": { "path": "node_modules/cz-git" } }, "lint-staged": { "*.{js,ts,mjs,mts,tsx}": [ "eslint --fix", "prettier --write" ], "*.{cjs,json,jsonc}": [ "prettier --write" ], "*.vue": [ "eslint --fix", "stylelint --fix --allow-empty-input", "prettier --write" ], "*.{html,htm}": [ "prettier --write" ], "*.{scss,css,less}": [ "stylelint --fix --allow-empty-input", "prettier --write" ], "*.{md,mdx}": [ "prettier --write" ], "*.{yaml,yml}": [ "prettier --write" ] }, "dependencies": { "@element-plus/icons-vue": "^2.3.2", "@file-viewer/preset-all": "^2.1.17", "@file-viewer/vue3": "^2.1.17", "@iconify-json/line-md": "^1.2.16", "@iconify-json/ri": "^1.2.10", "@iconify-json/svg-spinners": "^1.2.4", "@iconify/vue": "^5.0.1", "@tailwindcss/vite": "^4.3.0", "@vue-flow/background": "^1.3.2", "@vue-flow/controls": "^1.1.3", "@vue-flow/core": "^1.48.1", "@vue-flow/minimap": "^1.5.4", "@vueuse/core": "^13.9.0", "@wangeditor-next/editor": "^5.7.0", "@wangeditor-next/editor-for-vue": "^5.1.14", "animate.css": "^4.1.1", "axios": "^1.16.1", "clipboard": "^2.0.11", "codemirror": "^5.65.21", "codemirror-editor-vue3": "^2.8.0", "crypto-js": "^4.2.0", "dagre": "^0.8.5", "dayjs": "^1.11.20", "docx-preview": "^0.3.7", "dompurify": "^3.4.3", "echarts": "^6.0.0", "element-plus": "~2.13.7", "exceljs": "^4.4.0", "file-saver": "^2.0.5", "highlight.js": "^11.11.1", "js-beautify": "^1.15.4", "jszip": "^3.10.1", "markdown-it": "^14.1.0", "markdown-it-highlightjs": "^4.3.0", "mitt": "^3.0.1", "nprogress": "^0.2.0", "ohash": "^2.0.11", "path-browserify": "^1.0.1", "path-to-regexp": "^8.4.2", "picocolors": "^1.1.1", "pinia": "^3.0.4", "pinia-plugin-persistedstate": "^4.7.1", "qrcode.vue": "^3.9.0", "qs": "^6.15.0", "tailwindcss": "^4.3.0", "vue": "^3.5.34", "vue-draggable-plus": "^0.6.0", "vue-i18n": "^11.1.10", "vue-json-pretty": "^2.5.0", "vue-router": "^5.0.7", "vue-web-terminal": "^3.4.1", "vue3-cron-plus": "^0.1.9", "vuedraggable": "^2.24.3", "xgplayer": "^3.0.20", "xlsx": "^0.18.5" }, "devDependencies": { "@commitlint/cli": "^21.0.1", "@commitlint/config-conventional": "^21.0.1", "@eslint/js": "^10.0.0", "@iconify/utils": "^2.3.0", "@types/codemirror": "^5.60.17", "@types/dagre": "^0.7.54", "@types/file-saver": "^2.0.7", "@types/markdown-it": "^14.1.2", "@types/node": "^24.0.5", "@types/nprogress": "^0.2.3", "@types/path-browserify": "^1.0.3", "@types/qs": "^6.14.0", "@typescript-eslint/eslint-plugin": "^8.59.3", "@typescript-eslint/parser": "^8.59.3", "@vitejs/plugin-vue": "^6.0.6", "@vue/compiler-sfc": "^3.5.22", "@vue/test-utils": "^2.4.10", "autoprefixer": "^10.4.21", "commitizen": "^4.3.1", "cz-git": "^1.13.1", "eslint": "^10.3.0", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.3", "eslint-plugin-vue": "^10.4.0", "fs-extra": "^11.2.0", "globals": "^15.15.0", "husky": "^9.1.7", "jsdom": "^29.1.1", "lint-staged": "^15.5.2", "postcss": "^8.5.6", "postcss-html": "^1.8.0", "postcss-scss": "^4.0.9", "prettier": "^3.6.2", "rollup-plugin-visualizer": "^5.12.0", "sass": "^1.89.2", "stylelint": "^17.0.0", "stylelint-config-html": "^1.1.0", "stylelint-config-recess-order": "^7.7.0", "stylelint-config-recommended": "^18.0.0", "stylelint-config-recommended-scss": "^17.0.1", "stylelint-config-recommended-vue": "^1.6.1", "stylelint-config-standard": "^40.0.0", "stylelint-order": "^8.0.0", "stylelint-prettier": "^5.0.3", "terser": "^5.43.1", "tsx": "^4.20.3", "typescript": "^6.0.3", "typescript-eslint": "^8.59.3", "unplugin-auto-import": "^20.2.0", "unplugin-element-plus": "^0.10.0", "unplugin-vue-components": "^29.1.0", "vite": "^7.1.5", "vite-plugin-compression": "^0.5.1", "vite-plugin-vue-devtools": "^8.1.2", "vitest": "^4.1.7", "vue-demi": "^0.14.9", "vue-eslint-parser": "^10.4.0", "vue-img-cutter": "^3.1.1", "vue-tsc": "^3.2.9" }, "pnpm": { "overrides": { "glob": "13.0.6", "rimraf": "6.1.3", "uuid": "14.0.0", "fstream": "1.0.12", "lodash.isequal": "4.5.0" } }, "packageManager": "pnpm@9.15.3", "engines": { "node": ">=20.19.0", "npm": ">=10.0.0", "pnpm": ">=8.8.0" }, "repository": { "type": "git", "url": "https://gitee.com/fastapiadmin/FastapiAdmin.git" }, "bugs": { "url": "https://gitee.com/fastapiadmin/FastapiAdmin/issues" }, "author": "fastapiadmin <948080782@qq.com>", "license": "MIT", "homepage": "https://gitee.com/fastapiadmin/FastapiAdmin", "browserslist": [ "Chrome >= 84", "Firefox >= 83", "Safari >= 14.1", "Edge >= 84", "not dead" ] }