Integrar ESLINT con Vue.js

Author
By Darío Rivera
Posted on 2020-10-19 in Vue.js

Para configurar ESLINT en un proyecto con Vue.js debes haber instalado primero ESLINT. Por lo general ESLINT viene integrado en proyectos creados con vue-cli, te invito a revisar nuestro artículo Cómo crear un scaffolding de aplicación en Vue.js si es el caso y vas a crear una aplicación desde cero. 

Si creaste una aplicación en Vue.js sin haber seleccionado en los presets a ESLINT, lo más conveniente es agregarlo mediante vue-cli con el siguiente comando:

vue add @vue/cli-plugin-eslint

Por otro lado, si deseas instalar ESLINT de manera manual deberás realizar el procedimiento que describo a continuación.

Instalación

Lo primero que debes hacer es instalar la configuración de eslint necesaria para Vue.

npm i --save-dev eslint @vue/cli-plugin-eslint @vue/eslint-config-standard

También necesitarás instalar otros plugins de eslint para que la coniguración de Vue funcione correctamente.

npm i --save-dev \
eslint-plugin-import \
eslint-plugin-node \
eslint-plugin-promise \
eslint-plugin-standard \
eslint-plugin-vue \
babel-eslint

Esto, permitirá que puedas agregar en el archivo .eslintrc.js la siguiente configuración.

module.exports = {
  root: true,
  env: {
    node: true
  },
  extends: [
    'plugin:vue/essential',
    '@vue/standard'
  ],
  parserOptions: {
    parser: 'babel-eslint'
  },
  rules: {
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
  }
}

Uso

Para ver a eslint en funcionamiento primero hagamos un cambio que requiera un fix. podemos por ejemplo agregar una coma después del seteo de la propiedad render en el archivo src/main.js.

new Vue({
  render: h => h(App), // <-- comma
}).$mount('#app')

Una vez hecho esto podemos ejecutar el siguiente comando:

npx vue-cli-service lint --no-fix

Obtendremos una salida como la siguiente:

error: Unexpected trailing comma (comma-dangle) at src/main.js:7:22:
  5 | 
  6 | new Vue({
> 7 |   render: h => h(App), // <-- comma
    |                      ^
  8 | }).$mount('#app')
  9 | 

Suele ser una buena práctica agregar un script para que eslint arreglé automáticamente los archivos con errores. Podrías agregar por ejemplo el siguiente script:

..
  "scripts": {
    ..
    "lint": "vue-cli-service lint"
  },
...

Con esto bastaría correr el siguiente comando para arreglar los issues de eslint:

npm run lint

Si te ha gustado este artículo puedes invitarme a tomar una taza de café

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.