Guía tutorial inicial de Vite

Primeros pasos para utilizar el empaquetador ViteJS


Vite se define como una herramienta de frontend que te ayudará a crear tus proyectos de forma agnóstica (sin atarte a ningún framework concreto) y que su desarrollo y construcción final sea lo más sencilla y cómoda posible. Está desarrollada por Evan You, el creador de Vue.

Actualmente, Vite soporta la creación tanto de proyectos vanilla (sin utilizar frameworks), como proyectos utilizando Vue, React, Preact, Svelte o Lit (tanto usando Javascript como Typescript).

Crear un proyecto con Vite

Para comenzar, simplemente necesitamos tener instalado NodeJS. Utilizaremos npm para comenzar el proyecto. Escribimos desde una terminal:

$ npm create vite demo-project

Need to install the following packages:
  create-vite
Ok to proceed? (y) y

El comando npm create vite hará toda la magia por nosotros. En nuestro ejemplo, demo-project sería el nombre de la carpeta del proyecto, por lo que este comando ya se encargará de crear la carpeta, ni siquiera tendremos que crearla nosotros.

Se nos advertirá que es necesario instalar el paquete create-vite de no tenerlo instalado, que es el asistente encargado de crear la aplicación web. Al responder afirmativamente, nos aparecerá un menú para seleccionar que plantilla queremos utilizar (al elegir una, luego nos preguntará si queremos la versión javascript o typescript).

Plantillas de Vite

Si no queremos que nos aparezca ese menú interactivo, es posible indicar un parámetro opcional --template para especificar directamente la plantilla a utilizar sin que nos salte el asistente:

# Utilizas NPM 7 o superior
$ npm create vite demo-project -- --template vue

# Utilizas NPM 6 o anterior
$ npm create vite demo-project --template vue

Las plantillas que tenemos disponibles en Vite son las siguientes (son las que se establecen al elegir las opciones en el menú):

Plantilla Descripción URL
vanilla Proyecto vanilla, sin frameworks. Versión Javascript y Typescript. vanilla vanilla-ts
vue Proyecto con el framework Vue. Versión Javascript y Typescript. vue vue-ts
react Proyecto con la librería React. Versión Javascript y Typescript. react react-ts
preact Proyecto con la librería Preact. Versión Javascript y Typescript. preact preact-ts
lit Proyecto con la librería Lit. Versión Javascript y Typescript. lit lit-ts
svelte Proyecto con la librería Svelte. Versión Javascript y Typescript. svelte svelte-ts

Una vez hecho el proceso, comprobaremos que la tarea de creación del proyecto es prácticamente instantánea. Esto ocurre así porque Vite no realiza el proceso de instalación de paquetes automáticamente, por lo que tendremos que hacerlos nosotros manualmente de forma posterior:

$ cd demo-project
$ npm install

Con esto ya tendremos el proyecto listo para arrancarlo con el script npm run dev y comenzar a desarrollar. Ten en cuenta que en todos los proyectos que generes tendrás un script dev que lanza el modo de desarrollo de Vite y, por otro lado, tendrás un script build que lanza el modo de producción de Vite, que es el que genera la subida en la carpeta dist, que es la que irá a producción.

El fichero vite.config.js

En algunos proyectos de Vite encontrarás un fichero vite.config.js. Se trata de un fichero de configuración donde puedes establecer algunos detalles del funcionamiento del empaquetador en el proyecto actual. La estructura general de este fichero es la siguiente:

import { defineConfig } from "vite";

export default defineConfig({
  root: "./",
  base: "/",
  publicDir: "public",
  build: {
    outDir: "dist",
    assetsDir: "assets"
  },
  plugins: []
});

Dependiendo de la plantilla utilizada, este fichero de configuración puede ser diferente o incluso no existir (como es en el caso de los proyectos de Javascript vanilla).

Si te interesa utilizar un script que funcione con Vite y ya te proporcione la estructura de carpetas y los linters de Javascript y CSS preconfigurados, echa un vistazo a mkweb.

¿Quién soy yo?

Soy Manz, vivo en Tenerife (España) y soy streamer partner en Twitch y profesor. Me apasiona el universo de la programación web, el diseño y desarrollo web y la tecnología en general. Aunque soy full-stack, mi pasión es el front-end, la terminal y crear cosas divertidas y locas.

Puedes encontrar más sobre mi en Manz.dev