I really like programming languages that come with batteries included - Go, for example, comes with a powerful standard library, and commands for linting and formatting (fmt, vet, etc). Deno tried to bring a similar approach to the Javascript/Typescript world, but has unfortunatelly not gained much traction, and the fragmented Node ecosystem still reigns. That is why I am pretty excited about Vite+, a unified tool that includes a build tool, a testing framework, a linter, a formatter, a bundler and a runtime manager. Since I am starting a new project, it looks the perfect opportunity to test it.

Installing it is a matter of running a shell script (and praying the script is not malicious 🙏, lol):

curl -fsSL https://vite.plus | bash

After installing it, starting a project is as easy as:

vp create <template>

In my case, I wanted a new to start a new project with TanStack, therefore I went with:

vp create @tanstack/start

I went over the wizard, and bang, done! And I must say everything runs really fast.

Next step: pinning the Node version. Instead of the usual .nvmrc file, now we have a .node-version file, which can be automatically created or updated by running vp env pin. If you want Vite+ to automatically manage your Node versions, then you need to turn this on by running vp env on.

Afterwards, you can start running the usual commands:

  • vp install, vp add and vp remove manages dependencies.
  • vp check runs the linter and type checker.
  • vp check --fix fix the issues automatically.
  • vp dev starts the Vite development server.
  • vp build builds the application.
  • vp test executes the test runner.
  • vp run <command> runs built-in commands and package.json scripts.

And that is it. I guess I am sticking to it and getting rid of nvm for now.