Here’s an organized and easy-to-follow version of your note for online publication:
Steps to Set Up a Vue 3 Project with TypeScript, Tailwind CSS, and Other Useful Libraries
-
Create the Vue 3 project with TypeScript template
npm create vue@latest my-app -- --template vue-ts
-
Install required dependencies
npm install tailwindcss postcss autoprefixer axios vue-router @vueuse/core @vueuse/motion lucide-vue-next vue-i18n vue-toastification@next yup
-
Initialize Tailwind CSS
npx tailwindcss init -p
Project Structure
src
Folder Structure
src
├── assets
│ ├── styles
│ │ ├── base.css
│ │ ├── tailwind.css
│ │ ├── variables.css
│ └── images
│ └── logo.png
├── components
│ ├── common
│ │ ├── Button.vue
│ │ ├── Modal.vue
│ │ └── InputField.vue
│ ├── layout
│ │ ├── AppHeader.vue
│ │ ├── AppSidebar.vue
│ │ ├── AppFooter.vue
│ └── navigation
│ └── Breadcrumbs.vue
├── composables
│ ├── useAuth.ts
│ ├── useFetch.ts
│ ├── useToast.ts
│ └── index.ts
├── i18n
│ ├── en.json
│ ├── fr.json
│ └── index.ts
├── layouts
│ ├── DefaultLayout.vue
│ ├── AuthLayout.vue
│ └── AdminLayout.vue
├── middleware
│ ├── auth.ts
│ ├── guest.ts
│ └── admin.ts
├── modules
│ ├── dashboard
│ │ ├── components
│ │ │ └── DashboardCard.vue
│ │ ├── views
│ │ │ └── DashboardView.vue
│ │ └── store.ts
│ └── users
│ ├── components
│ │ └── UserCard.vue
│ ├── views
│ │ ├── UserListView.vue
│ │ ├── UserDetailView.vue
│ └── store.ts
├── router
│ ├── modules
│ │ ├── dashboardRoutes.ts
│ │ ├── authRoutes.ts
│ │ └── userRoutes.ts
│ └── index.ts
├── services
│ ├── apiClient.ts
│ ├── authService.ts
│ └── userService.ts
├── store
│ ├── modules
│ │ ├── auth.ts
│ │ ├── user.ts
│ │ └── settings.ts
│ └── index.ts
├── utils
│ ├── constants.ts
│ ├── helpers.ts
│ └── validationSchema.ts
├── views
│ ├── HomeView.vue
│ ├── LoginView.vue
│ ├── RegisterView.vue
│ └── Error404View.vue
├── App.vue
├── main.ts
├── shims-vue.d.ts
└── env.d.ts
Key Libraries Included
- Tailwind CSS: For utility-first styling.
- Axios: For HTTP requests.
- Vue Router: For routing between pages.
- VueUse: A collection of useful composition API functions.
- Lucide Vue Next: For scalable vector icons.
- Vue I18n: For internationalization (i18n) support.
- Vue Toastification: For easy-to-use toast notifications.
- Yup: For form validation schema.