Skip to content

How to Get Started with Vite+ for a New JavaScript Project

Problem

When I started a new JavaScript project last month, I spent two hours configuring tooling before writing a single line of application code. I had to install nvm for Node.js version management, choose between npm/yarn/pnpm for packages, set up Vite for the dev server, configure ESLint and Prettier for code quality, and figure out how to run tests with Vitest.

Each tool had its own configuration file, version constraints, and learning curve. I kept asking myself: why do I need to learn five different tools just to start coding?

Environment

  • macOS 15.0 (Apple Silicon)
  • Node.js 20.x
  • Vite+ Alpha (v0.1.0)

What I Was Doing Before

My typical setup looked like this:

traditional-setup.sh
# Install nvm for Node.js version management
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install 20
nvm use 20
# Create project and install dependencies
npm init -y
npm install vite @vitejs/plugin-react
npm install -D eslint prettier eslint-config-prettier vitest
# Create config files manually
touch .nvmrc
touch vite.config.js
touch .eslintrc.json
touch .prettierrc
touch vitest.config.js
# Run dev server
npx vite

This approach had several problems:

  1. Tool fatigue: I had to remember commands for nvm, npm, vite, eslint, prettier, and vitest separately
  2. Version conflicts: Different team members used different Node.js versions
  3. Configuration sprawl: Five config files just to start a simple project
  4. Onboarding friction: New team members spent hours setting up their environment

I read about Vite+ on Reddit and decided to try it. The comments were encouraging:

“Looks really good actually” “Amazing stuff, the ecosystem they built is truly next level”

How I Solved It with Vite+

Vite+ consolidates all these tools into a single binary with memorable commands.

Step 1: Install Vite+

install-viteplus.sh
npm install -g @viteplus/cli

After installation, I got a unified vp command:

check-version.sh
vp --version
# Output: v0.1.0

Step 2: Manage Node.js Versions

I used to run this:

old-node-version.sh
nvm install 20
nvm use 20
node --version

With Vite+, I simply run:

vp-env.sh
vp env
# Automatically manages Node.js versions for your project
# No need for nvm, fnm, or volta

The first time I ran vp env, it detected my project needed Node.js 20 and automatically installed it. No manual version switching required.

Step 3: Install Dependencies

My old workflow:

old-install.sh
npm install
# or
yarn install
# or
pnpm install

With Vite+:

vp-install.sh
vp install
# Auto-detects and uses the correct package manager

I tested this with a project that had a pnpm-lock.yaml file. Vite+ correctly detected it and used pnpm instead of npm.

Step 4: Start Development

The old way:

old-dev.sh
npx vite
# or
npm run dev

With Vite+:

vp-dev.sh
vp dev
# Launches Vite's dev server with hot reload
dev-output.txt
VITE v5.0.0 ready in 300 ms
➜ Local: http://localhost:5173/
➜ Network: http://192.168.1.100:5173/
➜ press h + enter to show help

Step 5: Code Quality

Before Vite+, I had to run these separately:

old-check.sh
npx eslint src/
npx prettier --check src/
npx tsc --noEmit

Now I run one command:

vp-check.sh
vp check
# Runs type-checking, linting, and formatting
check-output.txt
✓ Type checking passed
✓ Linting passed (0 errors, 2 warnings)
✓ Formatting passed
Total time: 1.2s

Step 6: Run Tests

Old approach:

old-test.sh
npx vitest run

With Vite+:

vp-test.sh
vp test
# Executes Vitest test suite

Step 7: Production Build

Old approach:

old-build.sh
npx vite build

With Vite+:

vp-build.sh
vp build
# Creates optimized production bundle

The Complete Workflow

Here is my new workflow visualized:

viteplus-workflow.txt
┌─────────────────────────────────────────────────────────────┐
│ Vite+ Unified Workflow │
└─────────────────────────────────────────────────────────────┘
Start Project Daily Development
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ vp env │ │ vp dev │
│ (setup Node) │ │ (run server)│
└──────────────┘ └──────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ vp install │ │ vp check │
│ (packages) │ │ (lint/test) │
└──────────────┘ └──────────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ vp dev │ │ vp build │
│ (start dev) │ │ (production)│
└──────────────┘ └──────────────┘

My CI/CD Pipeline Example

I updated my GitHub Actions workflow:

ci.yml
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: vp env && vp install && vp check && vp test && vp build

One line replaces five separate tool invocations.

Common Mistakes I Made

Mistake 1: Installing Alongside nvm

I initially kept nvm installed alongside Vite+. This created conflicts when both tools tried to manage Node.js versions.

wrong-approach.sh
# WRONG: Having both nvm and Vite+ manage Node.js
nvm use 20
vp env # Conflicts!

The fix: I uninstalled nvm and let Vite+ manage Node.js entirely.

correct-approach.sh
# Remove nvm
rm -rf ~/.nvm
# Let Vite+ handle everything
vp env

Mistake 2: Using npm Directly

I kept running npm install instead of vp install. This bypassed Vite+‘s automatic package manager detection.

wrong-npm.sh
# WRONG: Bypassing Vite+
npm install lodash

The correct approach:

correct-vp.sh
# RIGHT: Use Vite+ for consistency
vp install lodash

Mistake 3: Skipping vp check

I got into the habit of running only vp dev and forgot about vp check. Then my CI pipeline caught linting errors that I could have fixed locally.

good-habit.sh
# Get into this habit
vp dev # Start coding
vp check # Before committing
vp test # Verify tests pass

Mistake 4: Expecting Full Framework Support

I tried to use Vite+ with a Vue project, but the alpha version had limited Vue support. I had to fall back to traditional Vite for that project.

vue-warning.txt
⚠ Warning: Vue framework support is limited in alpha
Some features may not work correctly

I’m waiting for better Vue support before migrating those projects.

Mistake 5: Not Reading Help

Each vp command has options worth exploring:

explore-help.sh
vp env --help
vp install --help
vp dev --help

I discovered vp dev --host exposes the server to the network, which is useful for testing on mobile devices.

The Reason It Works

Vite+ works because it reduces cognitive load. Instead of remembering:

  • nvm use 20 for Node.js
  • npm install or yarn or pnpm install for packages
  • npx vite for development
  • npx eslint . && npx prettier --check . for linting
  • npx vitest for testing
  • npx vite build for production

I now remember one prefix: vp. The commands follow a consistent pattern:

  • vp env - environment setup
  • vp install - package installation
  • vp dev - development
  • vp check - quality check
  • vp test - testing
  • vp build - production build
  • vp run - monorepo tasks

For beginners, this eliminates “tooling fatigue”. For teams, it ensures everyone uses the same Node.js version and package manager without coordination overhead.

Summary

In this post, I showed how to set up a JavaScript project with Vite+. The key commands are vp env for Node.js management, vp install for dependencies, and vp dev for development. I also covered common mistakes like keeping nvm installed or bypassing vp commands. Start with vp env and vp dev to experience a frictionless development workflow.

Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments