{ "name": "web", "version": "0.1.0", "private": true, "type": "module", "scripts": { "serve": "npm run dev", "dev": "vite --open", "build": "run-p type-check \"build-only {@}\" --", "preview": "vite preview", "build-only": "vite build", "type-check": "vue-tsc --build --force", "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", "format": "prettier --write src/" }, "dependencies": { "@wangeditor/editor": "^5.1.23", "@wangeditor/editor-for-vue": "^5.1.12", "async-validator": "^4.2.5", "axios": "^1.4.0", "clipboard": "^2.0.11", "crypto-js": "^4.2.0", "element-plus": "^2.7.0", "lodash-es": "^4.17.21", "moment": "^2.29.4", "nanoid": "^5.0.7", "node-forge": "^1.3.1", "qrcode": "^1.5.3", "vue": "^3.4.15", "vue-router": "^4.2.5", "vuedraggable": "^4.1.0", "vuex": "^4.0.2", "xss": "^1.0.14", "yup": "^1.4.0" }, "devDependencies": { "@iconify-json/ep": "^1.1.15", "@rushstack/eslint-patch": "^1.10.2", "@tsconfig/node20": "^20.1.2", "@types/node": "^20.11.19", "@types/qrcode": "^1.5.5", "@vitejs/plugin-vue": "^5.0.3", "@vitejs/plugin-vue-jsx": "^3.1.0", "@vue/eslint-config-prettier": "^8.0.0", "@vue/eslint-config-typescript": "^12.0.0", "@vue/tsconfig": "^0.5.1", "eslint": "^8.49.0", "eslint-plugin-vue": "^9.17.0", "husky": "^9.0.11", "npm-run-all2": "^6.1.1", "prettier": "^3.0.3", "sass": "^1.72.0", "typescript": "~5.3.0", "unplugin-auto-import": "^0.17.5", "unplugin-icons": "^0.18.5", "unplugin-vue-components": "^0.26.0", "vite": "^5.1.4", "vite-plugin-virtual-mpa": "^1.11.0", "vue-tsc": "^1.8.27" }, "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "src/**/*.{.vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts}": [ "prettier --write", "eslint --fix" ] }, "engines": { "node": ">=18.0.0", "npm": ">=8.6.0" } }