Creé un complemento es lint que me proporciona una regla que verifica que la importación proporcionada no esté en una lista dinámica de importaciones en la lista negra.
La lista se carga desde un archivo JSON.
Actualmente estoy cargando este archivo en el método de create de una regla, pero la regla se vuelve a crear para cada archivo, lo que a su vez hace que el linter sea lento.
Encontré el siguiente texto en la documentación de ESLint, pero ninguna otra mención de una forma de compartir algún objeto global dentro de una invocación del linter.
https://eslint.org/docs/latest/user-guide/configuring/configuration-files#adding-shared-settings
ESLint admite la adición de configuraciones compartidas en los archivos de configuración. Los complementos usan configuraciones para especificar información que debe compartirse en todas sus reglas. Puede agregar un objeto de configuración al archivo de configuración de ESLint y se proporcionará a cada regla que se ejecute. Esto puede ser útil si está agregando reglas personalizadas y desea que tengan acceso a la misma información y que sean fácilmente configurables.
¿Esto es compatible? Intenté exportar un objeto de configuración en index.js del complemento, pero no se detecta en absoluto.
module.exports.settings = { "sharedData": "Hello" }Parece que ya tengo una solución alternativa, pero me pregunto si alguien encontrará una solución mejor.
Lo que hice al final fue cargar la configuración en el índice de la propia regla, que se carga al inicio de ESLint.
En lugar de depender de context.getCwd() , he vuelto a _dirname. Lo que resultó ser suficiente para mi caso de uso.