Cuando trabajemos con nuestro proyecto de Vue.js, hay muchas configuraciones que podemos realizar para facilitar nuestra experiencia de desarrollo.
Hemos visto que en un proyecto intervienen muchas herramientas y ficheros de configuración que podemos toquitear para ajustar el proyecto a nuestros gustos y nuestras necesidades.
Por ejemplo, tendremos que “lidiar” con herramientas como VSCode, Vite, ESLint y Prettier, o ficheros de configuración como jsconfig.json o tsconfig.json.
Por supuesto, cada uno de ellos daría para mucho hablar. Además dependerá de las necesidades de vuestro proyecto, e incluso de vuestros gustos y estilo.
En este artículo vamos a repasar algunos de ellos para, por lo menos, tener una idea y un punto de partida para algunas de ellas 👇.
Instalación de la extensión de Visual Studio Code
Si usamos Visual Studio Code (VSCode) para el desarrollo, lo primero que debemos hacer es instalar la extensión oficial de VS Code para Vue.js.
Para instalarlo,
- Abre VS Code
- Ve al panel de extensiones (Ctrl+Shift+X)
- Busca “Vue”
- Haz clic en instalar
Alternativamente también podríamos hacerlo desde la línea de comandos ejecutando,
code --install-extension vue.volar
La nueva extensión oficial de Vue (a veces llamada Volar, porque está basada en ella) reemplaza a la anterior que se llamaba Vetur
Si encontráis información por ahí sobre Vetur, está obsoleta
Configuración de VSCode para Vue.js
Personaliza la configuración de VSCode para trabajar mejor con Vue.js añadiendo estas configuraciones a tu settings.json
:
- Abre la configuración de VSCode (Ctrl+,)
- Haz clic en el icono de “Open Settings (JSON)” en la esquina superior derecha.
- Añade las siguientes configuraciones:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.validate": ["javascript", "javascriptreact", "vue"],
"volar.takeOverMode.enabled": true,
"volar.completion.autoImportComponent": true,
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"javascript.updateImportsOnFileMove.enabled": "always",
"editor.tabSize": 2,
"files.associations": {
"*.vue": "vue"
},
"emmet.includeLanguages": {
"vue": "html"
},
"emmet.syntaxProfiles": {
"vue-html": "html",
"vue": "html"
}
}
Estas configuraciones:
- Activan el formateo automático al guardar
- Configuran Prettier como formateador predeterminado
- Habilitan la corrección automática de ESLint al guardar
- Activan el “Take Over Mode” de Volar para mejor soporte de TypeScript
- Configuran el autocompletado para componentes Vue
- Establecen la indentación a 2 espacios
- Configuran asociaciones de archivos para Vue
- Habilitan Emmet para archivos Vue
Configuración de jsconfig.json/tsconfig.json
Los archivos jsconfig.json
y tsconfig.json
son necesarios para que el IDE detecte configuramente el lenguaje en nuestros ficheros.
- Resolución de rutas:
@/*
permite importar desde la carpetasrc
utilizando el alias@
, lo que facilita las importaciones. - Autocompletado mejorado: VSCode proporcionará mejores sugerencias y comprobación de tipos.
- Navegación de código: Podrás navegar fácilmente entre tus archivos, ver donde se usan, etc.
Dependiendo de si utilizas JavaScript o TypeScript, deberás configurar uno u otro.
Creamos un archivo jsconfig.json
en la raíz de tu proyecto:
{
"compilerOptions": {
"target": "es2022",
"module": "esnext",
"baseUrl": ".",
"moduleResolution": "node",
"paths": {
"@/*": ["src/*"]
},
"jsx": "preserve",
"lib": ["es2022", "dom", "dom.iterable", "scripthost"]
},
"exclude": ["node_modules", "dist"],
"vueCompilerOptions": {
"target": 3.3
}
}
Creamos un archivo tsconfig.json
en la raíz de tu proyecto:
{
"compilerOptions": {
"target": "es2022",
"module": "esnext",
"strict": true,
"jsx": "preserve",
"moduleResolution": "node",
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"forceConsistentCasingInFileNames": true,
"useDefineForClassFields": true,
"sourceMap": true,
"baseUrl": ".",
"types": ["vite/client"],
"paths": {
"@/*": ["src/*"]
},
"lib": ["es2022", "dom", "dom.iterable", "scripthost"]
},
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.tsx",
"src/**/*.vue"
],
"exclude": ["node_modules", "dist"],
"vueCompilerOptions": {
"target": 3.3
}
}
Configuración del proyecto Vue con Vite
Vite es un bundler moderno y extremadamente rápido que ya hemos visto, usamos para desarrollar nuestro proyecto.
Si necesitamos personalizar la configuración de Vite, podemos hacerlo editando el archivo vite.config.js
. Por ejemplo,
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
server: {
port: 3000,
open: true
},
build: {
outDir: 'dist',
minify: 'terser',
sourcemap: true
}
})
Esta configuración:
- Configura el alias
@
para la carpetasrc
- Establece el puerto del servidor de desarrollo a 3000
- Abre automáticamente el navegador cuando se inicia el servidor
- Configura opciones de compilación como el directorio de salida, minimización y sourcemaps
Configuración de Prettier para Vue.js
Prettier es una herramienta de formateo de código que garantiza un estilo consistente en todo tu proyecto. Si no lo tenemos instalado ya, podemos hacerlo con,
npm install --save-dev prettier @prettier/plugin-vue
Crea un archivo .prettierrc
en la raíz de tu proyecto:
{
"semi": false,
"tabWidth": 2,
"singleQuote": true,
"trailingComma": "es5",
"printWidth": 100,
"bracketSpacing": true,
"arrowParens": "avoid",
"vueIndentScriptAndStyle": true,
"endOfLine": "lf",
"htmlWhitespaceSensitivity": "ignore"
}
Esta configuración:
- Elimina los puntos y comas al final de las líneas
- Establece la indentación a 2 espacios
- Utiliza comillas simples
- Añade comas finales según el estándar ES5
- Limita el ancho de línea a 100 caracteres
- Mantiene espacios entre llaves en objetos
- Evita paréntesis innecesarios en funciones flecha de un solo parámetro
- Indenta correctamente las secciones
<script>
y<style>
en componentes Vue - Normaliza los finales de línea
- Ignora la sensibilidad de espacios en blanco en HTML
Si necesitamos ignorar archivos para Prettier, podemos crea un archivo .prettierignore
para excluir ciertos archivos para aplicar el formato.
Configuración del Linter para Vue.js
ESLint es una herramienta esencial para mantener la calidad del código y seguir las mejores prácticas en proyectos Vue.js. Si no seleccionaste ESLint durante la creación del proyecto, puedes instalarlo manualmente:
npm install --save-dev eslint eslint-plugin-vue @vue/eslint-config-prettier
Crea un archivo .eslintrc.js
en la raíz de tu proyecto:
module.exports = {
root: true,
env: {
node: true,
'vue/setup-compiler-macros': true
},
extends: [
'plugin:vue/vue3-essential', // Menos reglas, bueno para principiantes
'plugin:vue/vue3-recommended', // Más estricto, recomendado para desarrollo profesional
'eslint:recommended',
'@vue/eslint-config-prettier'
],
parserOptions: {
ecmaVersion: 2022
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'vue/multi-word-component-names': 'off', // Para principiantes
'vue/require-default-prop': 'off', // Para principiantes
'vue/script-setup-uses-vars': 'error',
'vue/no-unused-vars': 'error'
}
}
Si necesitamos ignorar archivos para ESLint, podemos crear un archivo .eslintignore
para excluir archivos del linting,