Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

For a new Vue 3 project, start with Vue’s official scaffold: npm create vue@latest. It creates a Vite-powered app and lets you choose integrations such as TypeScript, Vue Router, Pinia, and testing tools. A personal starter is worthwhile when it preserves choices you repeatedly make—not when it adds every available tool by default.

Start with Vue’s official scaffold

Vue recommends create-vue as the way to start a Vite-powered Vue project. The Quick Start command is:

npm create vue@latest

The command runs the Vue-specific scaffolding tool and asks which optional features to configure. Include @latest so npm does not resolve a cached older package. The generated app uses Vite and Vue Single-File Components; the scaffold’s options include TypeScript, JSX, Vue Router, Pinia, Vitest, end-to-end testing, and code-quality tooling. You can also use --bare for minimal boilerplate. Check the create-vue repository for current flags and prompts, which may change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose a starting route

There are two reasonable ways to begin. The Vue-specific scaffold provides prompts for Vue integrations; Vite’s templates are a more direct basic-template route.

Starting point What it gives you What you take on
npm create vue@latest A Vite-powered Vue project with prompts for common Vue-related integrations. Choose only the options that suit the project, then maintain the dependencies included.
Vite’s Vue or Vue TypeScript template A more basic Vite template for Vue, with or without TypeScript. Add any Vue-specific integrations you need yourself.

Vite documents its available templates in its Getting Started guide. Neither route is established as universally faster or better; the choice is how much Vue-specific setup you want the scaffold to handle.

Decide what belongs in your reusable starter

Use the scaffold’s prompts as decisions, not a checklist to enable wholesale. For each addition, consider both the problem it solves and the ongoing work it creates.

TypeScript and type checking

Vue supports TypeScript, and create-vue can set up a TypeScript-ready Vite project. But Vite’s development server and bundler transpile TypeScript without checking types. A running dev server therefore does not establish that the project is free of type errors. Add an explicit type-checking step through your editor or project scripts, as described in Vue’s TypeScript overview.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Vue Router

Add Vue Router when the app needs URL-driven pages or single-page-application navigation. A small app centered on one view may not need routing at the outset. The scaffold offers the router as an option; Vue Router’s installation guide covers setup and advises pinning versions for production.

Pinia and shared state

Pinia is another optional scaffold choice. It can be relevant when state needs to be shared across parts of an app, but the available guidance does not prescribe a universal threshold for introducing a global store. Add it to a starter only if it reflects a recurring project need, and understand the dependency you are committing to maintain.

Unit and end-to-end tests

For a Vite-based project created with create-vue, Vue’s testing guide favors Vitest because it can use Vite’s configuration and transform pipeline. An existing Jest suite may make continuing with Jest a better fit during migration. End-to-end testing is also a scaffold option; choose a tool and configure commands that match the project. Including a test runner does not mean tests have been written or that the app is covered.

Linting and code quality

Code-quality tooling is available among the scaffold options. Include it if you want consistent checks across projects, and make its commands clear in your own starter documentation. A configured linter is a tool for checking code, not proof that the app is production-ready.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Keep the starter maintainable

A reusable starter should make your repeated decisions easy to see and change. Keep the setup understandable: document the scripts you expect to run, distinguish required tools from optional ones, and periodically review dependencies as their documentation and versions evolve. Avoid adding a plugin merely because it appeared in a prompt. Each dependency brings setup and maintenance alongside its capability.

Where Vue CLI fits

Vue’s CLI guide now recommends create-vue for new projects. The Vue CLI is webpack-based, while create-vue scaffolds a Vite-powered project that then uses Vite and its plugin ecosystem. Vue CLI remains relevant when dealing with an existing project, but it is not the default starting point for a new Vue 3 starter.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.