Instalacion de Entorno Svelte

logo svelte

Entorno

Es necesario que instales las siguientes herramientas, en este orden:

Editor de Texto

Visual Studio Code

Dentro de Visual Studio Code, te recomendamos que crees un perfil vacío y lo asocies a tus nuevos proyectos Svelte (podés ver cómo se trabaja con perfiles en VSCode en este video. También te dejamos este tutorial muy piola - en inglés y la documentación oficial).

Instalación

Opción 1: podés importar este archivo que trae todas las extensiones para Svelte

O si no, podés instalar las extensiones del Visual Studio Code manualmente. Para 2024 son los que ya instalaste para trabajar con HTML/CSS y los siguientes:

Necesarios

Opcionales

Aprendiendo Typescript

Typescript es el lenguaje de programación base en el que vamos a trabajar. Tranquilo, es muy similar a los lenguajes orientados a objetos en los que ya trabajaste. Para iniciarte o para hacer consultas te dejamos estos links:

Crear un proyecto Svelte desde cero

      npx sv create lala
┌  Welcome to the Svelte CLI! (v0.6.5)
│
◇  Which template would you like?
│  SvelteKit minimal
│
◇  Add type checking with Typescript?
│  Yes, using Typescript syntax
│
◆  Project created
│
◆  What would you like to add to your project? (use arrow keys / space bar)
│  ◼ prettier
│  ◼ eslint
│  ◼ vitest
│  ◼ playwright (browser testing - https://playwright.dev)
│  ◻ tailwindcss
│  ◻ drizzle
│  ◻ lucia
│  ◻ mdsvex
│  ◻ paraglide
│  ◻ storybook
└
◇  Which package manager do you want to install dependencies with?
│  yarn
│
◆  Successfully setup add-ons
│
◇  Installing dependencies with yarn...

    

Repasamos las opciones

Levantar la app

Para levantar la aplicación Svelte ejecutás

      npm run dev

    

Luego en un navegador pedís la siguiente url: http://localhost:5173.

Correr los tests de un proyecto

Para ejecutar los tests de un proyecto, te posicionás en el directorio raíz y ejecutás desde la consola

      npm test

    

Archivo de configuración para Visual Studio Code

Te recomendamos que dentro del proyecto crees una carpeta .vscode y dentro un archivo settings.json que tenga este contenido:

      {
	"editor.codeActionsOnSave": {
		"source.fixAll.eslint": "explicit"
	},
	"editor.formatOnSave": true,
	"editor.tabSize": 2
}

    

Cambios al package.json

Dentro del archivo package.json del raíz de tu proyecto hay que agregar lint:fix (para poder corregir errores simples del linter) y test:ci (para que al ejecutar el build de Github Actions tengas la cobertura):

        "scripts": {
		"lint:fix": "eslint . && prettier --write .",
		"test:unit": ...,
		"test:ci": "npm run test:unit -- --run --coverage"
  },

    

Dependencias adicionales

Ejecutá este comando para agregar las siguientes dependencias:

      yarn add @testing-library/jest-dom @testing-library/svelte @testing-library/user-event @types/eslint @vitest/coverage-v8 jsdom

    

Archivo .nvmrc

Tener un archivo .nvmrc es conveniente si todo el equipo trabaja con NVM (el versionador de Node). El contenido especifica qué versión de Node vamos a utilizar:

      22.9.0

    

Ejemplo de .gitignore

Agregamos estas líneas al archivo .gitognore:

      vite.config.ts.timestamp-*
# ... empezamos acá ...

# Coverage
coverage

# VSCode
.history

    

Configuración de prettier

En el archivo .prettierrc vamos a configurar el tabSize a 2 posiciones y comillas simples, además de eliminar punto y coma:

      {
	"useTabs": true,
	"singleQuote": true,
  // acá ubicamos estas dos líneas
	"tabWidth": 2,
	"semi": false,

    

Cada vez que grabamos un archivo se ejecuta automáticamente el proceso que corrige los errores de linter. Para activarlo manualmente debemos hacer

      npm run lint:fix

    

Configuración del archivo de test

El archivo vitest-setup.js tiene que incorporar el plugin de testing de Svelte. Te dejamos el archivo completo:

      import { defineConfig } from 'vitest/config'
import { svelteTesting } from '@testing-library/svelte/vite'
import { sveltekit } from '@sveltejs/kit/vite'

export default defineConfig({
	plugins: [sveltekit(), svelteTesting()],

	test: {
		include: ['src/**/*.{test,spec}.{js,ts}'],
		globals: true,
		environment: 'jsdom',
		setupFiles: ['./vitest-setup.js'],
		coverage: {
			include: ['src']
		}
	}
})

    

Ejemplo de un archivo para Github Actions

Te dejamos este archivo de ejemplo que tenés que guardar en .github/workflows/build.yml. Descargalo y reemplazá XXXXXXXXX por el nombre de la carpeta donde está tu proyecto.

Cómo configurar los badges en tu README

      ![Coverage](./badges/XXXXXXX/coverage.svg)