This project is built with vue3 + vite, using pnpm for package management and pinia for state management.
- Development Experience: Written in typeScript, styled with tailwindcss, and structured with vue-router, and vue-i18n. Supports SVGs (vite-plugin-svg-icons).
- API & Mocking: Handles requests with axios and mocks APIs using msw.
- Code Quality: Enforces standards with eslint and prettier, with husky, commitlint, and lint-staged for commit validation.
- Testing: Uses vitest + testing-library for unit testing and playwright for E2E testing.
- Optimization: Compresses CSS with cssnano, converts units with postcss-pxtorem, convert modern CSS into something most browsers can understand with postcss-preset-env, and analyzes assets with rollup-plugin-visualizer.
- CI/CD: Integrates GitHub ActionsandGitLab CIfor automated testing and deployment.
- Project root aliased as @to<project_root>/src
- Store persistedstate use pinia-plugin-persistedstate
- ESlint plugin use @component-hook/eslint-plugin
- if encounter npx: command not found, can execute ln -s $(which npx) /usr/local/bin/npxin zsh
- Predefined and fully typed global variables:
- VITE_APP_VERSIONis read from- package.jsonversion at build time
- VITE_APP_LAST_COMMIT_HASHis last commit hash at build time
- VITE_APP_BUILD_EPOCHis populated as- Date.now()at build time
- VITE_APP_MOCKis use mock environment
 
src/
├── __tests__/
│   ├── __mocks__/
│   ├── e2e/*
│   └── unit/*
├── assets/*
│   └── svg-icons
│          └── vue.svg
├── components/
│   └── common
│       ├── svg-icon/
│       │   ├── src
│       │   │   └── index.vue
│       │   └── index.ts
│       └── index.ts
├── constants/*
├── hooks/*
├── locales/
│   ├── en-US.json
│   └── zh-CN.json
├── mocks/
│   ├── handlers/*
│   │   ├── modules/*
│   │   └── index.ts
│   │── browser.ts
│   └── server.ts
├── pages/
│   └── home/
│       ├── components
│       │   └── HelloWorld.vue
│       └── index.vue
├── plugins/
│   └── i18n.ts
├── router/
│   └── index.ts
├── stores/
│   ├── modules
│   │   └── config.ts
│   └── index.ts
├── styles/
│   ├── common/
|   │   ├── all.css
|   │   └── button.css
│   ├── base.css
│   ├── index.css
│   └── tailwind.css
├── types/*
├── utils/*
├── App.vue
├── vite-env.d.ts
└── main.ts