{ "name": "emotion-museum-web", "version": "1.0.0", "description": "情绪博物馆Web端 - Vue3+TypeScript重构版本", "type": "module", "scripts": { "dev": "vite", "build": "vue-tsc && vite build", "build:check": "vue-tsc && vite build", "preview": "vite preview", "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", "lint:check": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-path .gitignore", "type-check": "vue-tsc --noEmit", "test": "vitest", "test:ui": "vitest --ui", "test:coverage": "vitest --coverage", "test:unit": "vitest run", "test:unit:watch": "vitest", "test:e2e": "cypress run", "test:e2e:open": "cypress open", "test:e2e:ci": "start-server-and-test dev http://localhost:5173 'cypress run'", "test:all": "npm run test:unit && npm run test:e2e", "build:analyze": "vite build --mode analyze", "build:staging": "vite build --mode staging", "build:production": "vite build --mode production", "prepare": "husky install" }, "dependencies": { "vue": "^3.4.21", "vue-router": "^4.3.0", "pinia": "^2.1.7", "axios": "^1.6.8", "@stomp/stompjs": "^7.1.1", "element-plus": "^2.6.1", "@element-plus/icons-vue": "^2.3.1", "tailwindcss": "^3.4.1", "@tailwindcss/forms": "^0.5.7", "@tailwindcss/typography": "^0.5.10", "echarts": "^5.5.0", "vue-echarts": "^6.7.3", "@vueuse/core": "^10.9.0", "dayjs": "^1.11.10", "lodash-es": "^4.17.21", "zod": "^3.22.4", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", "@vueuse/motion": "^2.0.0", "vue-toastification": "^2.0.0-rc.5", "nprogress": "^0.2.0", "vue-upload-component": "^3.1.4", "cropperjs": "^1.6.1", "file-saver": "^2.0.5", "@tiptap/vue-3": "^2.2.4", "@tiptap/starter-kit": "^2.2.4", "@tiptap/extension-image": "^2.2.4", "vue-i18n": "^9.10.2" }, "devDependencies": { "@vitejs/plugin-vue": "^5.0.4", "@vue/tsconfig": "^0.5.1", "vue-tsc": "^2.0.6", "vite": "^5.1.6", "typescript": "^5.4.2", "unplugin-auto-import": "^0.17.5", "unplugin-vue-components": "^0.26.0", "vite-plugin-pwa": "^0.19.2", "workbox-window": "^7.0.0", "eslint": "^8.57.0", "@vue/eslint-config-typescript": "^12.0.0", "@vue/eslint-config-prettier": "^9.0.0", "prettier": "^3.2.5", "lint-staged": "^15.2.2", "husky": "^9.0.11", "vitest": "^1.4.0", "@vue/test-utils": "^2.4.5", "jsdom": "^24.0.0", "cypress": "^13.7.1", "rollup-plugin-visualizer": "^5.12.0", "vite-plugin-compression": "^0.5.1", "vite-plugin-mock": "^3.0.1", "@intlify/unplugin-vue-i18n": "^4.0.0", "autoprefixer": "^10.4.18", "postcss": "^8.4.35", "@types/lodash-es": "^4.17.12", "@types/nprogress": "^0.2.3", "@types/file-saver": "^2.0.7", "@types/cropperjs": "^1.3.5", "tailwindcss": "^3.4.1", "@types/node": "^20.11.25", "start-server-and-test": "^2.0.3" }, "lint-staged": { "*.{vue,js,ts}": [ "eslint --fix", "prettier --write" ] }, "engines": { "node": ">=18.0.0", "npm": ">=9.0.0" } }