mik01aj
Tengo una configuración con alrededor de 100 reglas y ejecutar eslint en mi proyecto con todas estas reglas toma alrededor de 10 segundos. Me gustaría identificar las reglas más lentas y eliminar algunas de ellas. ¿Cómo hago esto? ¿Hay alguna herramienta de perfilado para eslint?
misticatea
eslint muestra los tiempos gastados de las reglas si la variable de entorno TIMING
Está establecido. Por ejemplo:
$ TIMING=1 eslint lib
Rule | Time (ms) | Relative
:----------------------------|----------:|--------:
valid-jsdoc | 203.798 | 6.7%
camelcase | 142.146 | 4.6%
no-unmodified-loop-condition | 136.811 | 4.5%
indent | 127.138 | 4.2%
no-undefined | 124.525 | 4.1%
keyword-spacing | 85.397 | 2.8%
space-in-parens | 76.179 | 2.5%
no-this-before-super | 72.317 | 2.4%
no-implied-eval | 69.945 | 2.3%
space-infix-ops | 57.128 | 1.9%
Consulte también los documentos oficiales sobre Rendimiento por regla.
-
¡Vaya, es así de fácil! ¡Gracias!
– mik01aj
20 de julio de 2016 a las 8:12
-
Lástima que no muestra el temporizador del analizador. Estoy usando
@typescript-eslint/parser
y está tomando mucho tiempo, quería un punto de referencia en él.– Ka Mok
6 de febrero de 2019 a las 19:05
-
De hecho, tengo el mismo problema con el
@typescript-eslint/parser
, con un archivo de 400 líneas tarda unos 6 segundos, las reglas actuales son comparativamente rápidas, siendo 600ms la más lenta y también (99,6% del relativo). Entonces, al menos 5.4 segundos desapareciendo para analizar. Una desgracia con el--cache
es que no funciona con--stdin
algo que me hizo tropezar al tratar de optimizar esto como una integración de editor.– terje
20 mayo 2019 a las 20:16
Descubrí que eliminar reglas lentas realmente no ayudó mucho, ya que cargar eslint
y el análisis de archivos lleva un tiempo.
Es posible utilizar el --cache
opción de eslint
(documentos) para acelerar las cosas sustancialmente.
Cuando usas eslint
a “lint-as-you-type” en varios editores, instalando eslint_d permite correr eslint
como un demonio, y salva el node
Tiempo de carga.
En el proyecto en el que estoy trabajando actualmente, combinando ambos eslint_d
y --cache
¡trajo el tiempo de formación de pelusa de 4+ segundos a 0.17!
-
Yo uso vim con el CERVEZA INGLESA complemento para pelusa. Configuración
let g:ale_javascript_eslint_executable = 'eslint_d --cache'
usar amboseslint_d
y--cache
¡aceléralo de ~ 1 segundo para que sea casi instantáneo!– Giovanni Benussi
11 oct 2019 a las 12:53
-
Uso eslint a través del complemento Syntastic para VIM. Cualquier información sobre cómo habilitar
--cache
mientras se ejecuta desde Syntastic?– nullromo
9 jun 2020 a las 20:34
-
No uso syntastic yo mismo, pero el documentos en la sección 4.5 mencione cómo pasar opciones a un verificador, supongo que en su caso algo así como
let g:syntastic_javascript_eslint_args = "--cache"
– Laurent S.
10 de junio de 2020 a las 12:23
-
Hay algunas opciones que tuve que cambiar para obtener
eslint_d
trabajando correctamente con syntastic.let g:syntastic_javascript_checkers = ['eslint'] let g:syntastic_javascript_eslint_exe = 'eslint_d' let g:syntastic_javascript_eslint_args = "--cache" let g:syntastic_javascript_eslint_exec = '/bin/ls'
Por último, debe asegurarseeslint_d
está en la RUTA cuando se inicia vim.– lucas campbell
10 de julio de 2020 a las 17:18
-
¿Cómo podemos usar esto con
create-react-app
?– SeyyedKhandon
1 de agosto de 2021 a las 8:19
En mi caso estoy usando @typescript-eslint/eslint-plugin
(pelusa con información de tipo) y había configurado mal el tsconfig include
campo. Residencia en este documento tienes que incluir todos tus archivos. Así que actualicé mi configuración de eslint:
module.exports = { overrides: [ { files: ['*.ts'], parserOptions: { -project: ['tsconfig.json'],-createDefaultProgram: true,+ project: ['tsconfig.json', './projects/*/tsconfig.json'], + createDefaultProgram: false, }, } ] }
Esto también puede suceder si está usando @angular-eslint/eslint-plugin
. Leer la sección de rendimiento de sus documentos
-
creo que lo relevante
@typescript-eslint
doc ahora está aquí: github.com/typescript-eslint/typescript-eslint/blob/main/docs/…– charles allen
11 de diciembre de 2021 a las 6:18
También encontré este problema, esto se debió a que habilité createDefaultProgram: true
¡eliminarlo aumentó mis actuaciones significativamente!