¿Existe una regla ESLint para hacer cumplir el uso de */index en las importaciones?
Estructura del archivo:
utils/ - index.js - a.js - b.js main.jsprincipal.js
// WRONG import utils from "./utils"; // OK import utils from "./utils/index"; Necesito esto porque mi proyecto usa tscpaths para reemplazar rutas absolutas con rutas relativas después de la compilación de mecanografiado, pero, por alguna razón, no reemplaza cuando */index no está presente.
Si la regla no existe, ¿hay una configuración de vscode que agregue automáticamente el index en las importaciones automáticas?
Opción 1, reestructura tu proyecto para que no haya index.js para importar.
Opción 2, si no hay demasiadas carpetas en las que esto sea un problema, puede escribir una configuración para la regla no-internal-imports modo que importar una carpeta por nombre se considere una "referencia interna". Esta es probablemente la peor solución, ya que no hay reparación automática y agregar nuevas carpetas requiere actualizar la configuración de eslint, pero podría ser útil mencionarla como una opción.
Opción 3, cree una versión modificada de la regla no-useless-path-segments que hace esto, actualmente tiene la lógica opuesta a la que desea, por lo que modificaría el código alrededor de las líneas 95-108 para verificar si la importación no es un importación de índice pero se resuelve en uno sugiere la solución:
// assuming your rule has an option called enforceIndex if (options && options.enforceIndex && !regexUnnecessaryIndex.test(importPath)) { // if the import path is not pointing to an index file check if it resolves to a path that looks like an index file const resolved_path = resolve(importPath, context); if(regexUnnecessaryIndex.test(resolved_path)){ // if the resolved_path resolves to something that looks like an index then suggest adding /index return reportWithProposedPath(`${importPath}/index`); } }posiblemente acérquese al equipo de ese paquete eslint y pregúnteles si estarían dispuestos a agregar soporte para esa lógica, ya que puede surgir para otras personas.