# Ayuda configurando rubocop, eslint, etc. en VS Code y la línea de comandos

**URL:** https://meta.discourse.org/t/help-configuring-rubocop-eslint-and-so-on-in-vscode-and-the-command-line/277070
**Category:** Marketplace
**Created:** [29 Agosto, 2023 16:08 UTC](https://meta.discourse.org/t/help-configuring-rubocop-eslint-and-so-on-in-vscode-and-the-command-line/277070 "2023-08-29T16:08:24Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [29 Agosto, 2023 16:08 UTC](https://meta.discourse.org/t/help-configuring-rubocop-eslint-and-so-on-in-vscode-and-the-command-line/277070/1 "2023-08-29T16:08:24Z")

</div>

Estoy harto de enviar código que falla las pruebas de linting. A veces, puedo copiar y pegar los comandos de `rubocop` o `yarn eslint` (y otros) de GitHub en mi terminal y eso funciona, pero tampoco está funcionando ahora.

Estoy recibiendo errores como

```
 No se pudo inferir un analizador para el archivo: ...

```

Para algunos archivos en algunas condiciones, vscode se reformatea correctamente al guardar y me dice que tengo un error de sintaxis, pero eso no está funcionando ahora.

### ¿Qué te gustaría que se hiciera?

Quiero hacer una pantalla compartida por Zoom (o lo que sea) y que me guíes a través de las cosas para que

- vscode ejecute todo lo que debe ejecutar al guardar y corrija el formato o me diga que algo está roto.
- Pueda ejecutar `yarn eslint` y cualquier otra cosa que esté en las pruebas de linting desde la línea de comandos.

### ¿Cuándo lo necesitas hecho?

Antes de que me vuelva loco.

## ¿Cuál es tu presupuesto, en $ USD que puedes ofrecer para esta tarea?

Estoy usando Pop!Os, que es esencialmente Ubuntu.

Si estás bastante seguro de que puedes resolver este problema, estoy preparado para pagar una hora de tu tiempo a tu tarifa estándar. Si puedes hacerlo en diez minutos, estaré feliz de pagar por una hora. Todos ganan.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [29 Agosto, 2023 16:18 UTC](https://meta.discourse.org/t/help-configuring-rubocop-eslint-and-so-on-in-vscode-and-the-command-line/277070/2 "2023-08-29T16:18:17Z")

</div>

Jay,

frustrante, ¿verdad?

Lo que hago para este tipo de cosas es:

- examinar los flujos de trabajo de CI para un plugin popular
- mirar la configuración asociada en la raíz del plugin

Puedes ver lo que hacen mis pruebas de linting para Chatbot aquí:

> <https://github.com/merefield/discourse-chatbot/blob/262a0a419fa261d7771a23fe07361cdfa78196eb/.github/workflows/plugin-linting.yml#L37>

Creo que puedes ejecutar eslint y prettier desde el directorio del plugin, pero rubocop se puede ejecutar desde el directorio de discourse.

Si esto resuelve tu problema, no dudes en convertirlo en un tema #Dev y eres bienvenido 🙂

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [29 Agosto, 2023 16:42 UTC](https://meta.discourse.org/t/help-configuring-rubocop-eslint-and-so-on-in-vscode-and-the-command-line/277070/3 "2023-08-29T16:42:45Z")

</div>

Lo que hago es copiar ciegamente los flujos de trabajo de [GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins](https://github.com/discourse/discourse-plugin-skeleton) y [GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes](https://github.com/discourse/discourse-theme-skeleton). (Tengo que retocar un poco el del plugin para mi plugin de panel, que depende del plugin de stripe). Esto, estoy dispuesto a creer, es suficiente para hacer el linting.

Lo que quiero, sin embargo, es que vscode haga el linting antes de hacer el commit. Lo he tenido funcionando en el pasado, pero ha dejado de funcionar y me siento como alguien que, sabiendo de VScode, conocía Emacs hace 20 años, podría decir algo como “presiona control-p, ahora haz lo que sea para instalar la cosa de formato, ahora edita el archivo de configuración para que haga lo Correcto” y entonces podría, una vez más, presionar control-S y que mis handlebars, javascript y lo que sea que se formatee bonito, y también encontrar todas las molestas variables que definí pero nunca usé y cosas así.

### Acercándome

OK, pero hice esto:

```plaintext
      npm install --global yarn
      yarn add prettier

```

Y ahora tengo `discourse-prettier`:

```bash
#!/usr/bin/env bash
if [-n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)"]; then
  yarn prettier --write "assets/**/*.{scss,js,es6,hbs}"
fi
if [-n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)"]; then
  yarn prettier --write "admin/assets/**/*.{scss,js,es6,hbs}"
fi
if [0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l)]; then
  yarn prettier --write "test/**/*.{js,es6}"
fi

if [-n "$(find assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)"]; then
  yarn prettier --list-different "assets/**/*.{scss,js,es6,hbs}"
fi
if [-n "$(find admin/assets -type f \( -name "*.scss" -or -name "*.js" -or -name "*.es6" -or -name "*.hbs" \) 2>/dev/null)"]; then
  yarn prettier --list-different "admin/assets/**/*.{scss,js,es6,hbs}"
fi
if [0 -lt $(find test -type f \( -name "*.js" -or -name "*.es6" \) 2> /dev/null | wc -l)]; then
  yarn prettier --list-different "test/**/*.{js,es6}"
fi

```

Eso resolvió parte de mi problema, así que al menos puedo ejecutar `prettier` desde la línea de comandos. Pero todavía estoy dispuesto a pagar por ayuda para que vscode haga mi trabajo sucio. Cuando guardo, debería ejecutar eslint (o rubop o lo que sea) y arreglarlo o decirme que no puede. Soy demasiado viejo para pensar que mi editor debería _escribir_ mi código, pero no tan viejo como para pensar que no debería formatearlo.

Solía haber un tema donde alguien sugería qué plugins de vscode estaba usando, lo que me ayudó un poco, pero ahora no lo veo.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [28 Septiembre, 2023 16:42 UTC](https://meta.discourse.org/t/help-configuring-rubocop-eslint-and-so-on-in-vscode-and-the-command-line/277070/4 "2023-09-28T16:42:59Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
