DEV Community

jgngo
jgngo

Posted on • Edited on

Starting a Vue 3 project

tl;dr

Use npm init vue@latest. This uses Vite as the build tool and provides options to enable state management, routing and testing tools.

Starting a vue project

There are 3 official ways to start a Vue project. Vue CLI appears to be obsolete with the arrival of Vue 3.

  1. Vue create-vue: the official Vue project scaffolding tool

    npm init vue@latest

  2. Vite preset: a build tool that aims to provide a faster and leaner development experience for modern web projects

    npm create vite@latest

  3. Vue CLI: aims to be the standard tooling baseline for the Vue ecosystem. This appears to be for Vue 2.

    vue create hello-world

Vue create-vue

The official docs recommend this command to start a build-tool-enabled project. The command provides several options that default to No. I recommend you enable Typescript, Vue Router and Pinia. The others can be added to your project when you are ready to use them.

npm init vue@latest

Vue.js - The Progressive JavaScript Framework √ Project name: ... vuecreate √ Add TypeScript? ... No / Yes √ Add JSX Support? ... No / Yes √ Add Vue Router for Single Page Application development? ... No / Yes √ Add Pinia for state management? ... No / Yes √ Add Vitest for Unit Testing? ... No / Yes √ Add Cypress for both Unit and End-to-End testing? ... No / Yes √ Add ESLint for code quality? ... No / Yes 
Enter fullscreen mode Exit fullscreen mode

Vite vue preset

npm create vite@latest

√ Project name: ... vite-project √ Select a framework: » vue √ Select a variant: » vue Scaffolding project in C:\Users\ngoja\sandbox\vite-project... 
Enter fullscreen mode Exit fullscreen mode

Post project creation

Install Tailwind

After project creation, cd to your project folder and install Tailwind.

https://tailwindcss.com/docs/guides/vite

npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p 
Enter fullscreen mode Exit fullscreen mode

Then edit the following 3 files:

./tailwind.config.js - replace the content line with this

content: [ "./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}", ], 
Enter fullscreen mode Exit fullscreen mode

./src/index.css - create this new file

@tailwind base; @tailwind components; @tailwind utilities; 
Enter fullscreen mode Exit fullscreen mode

./src/main. - insert after the last import statement

import './index.css' 
Enter fullscreen mode Exit fullscreen mode

You will then want to delete the <style> section in ./src/App.vue so it won't conflict with the Tailwind css.

Top comments (0)