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 addandvp removemanages dependencies.vp checkruns the linter and type checker.vp check --fixfix the issues automatically.vp devstarts the Vite development server.vp buildbuilds the application.vp testexecutes the test runner.vp run <command>runs built-in commands andpackage.jsonscripts.
And that is it. I guess I am sticking to it and getting rid of nvm for now.