La règle que je recherche doit afficher une erreur dans ce cas:
import {MY_CONSTANT1, MY_CONSTANT2, MY_CONSTANT3}
Et considéré comme très bien dans ce cas:
import {
MY_CONSTANT1,
MY_CONSTANT2,
MY_CONSTANT3
}
Existe-t-il une telle règle de réduction?
Je cherchais la solution et je n'ai malheureusement trouvé que votre question. J'ai décidé d'en apprendre un peu plus sur le fonctionnement d'eslint et comment écrire vos propres plugins et créer le mien. Si vous connaissez l'analyse de la structure du nœud AST, il est vraiment facile de travailler avec. Voici le fichier principal du plugin. La correction automatique est plus délicate cependant, donc je ne l'inclue pas car elle est biaisée vers mon formatage normes.
module.exports = {
rules: {
'single-import-per-line': {
create (context) {
return {
ImportDeclaration(node) {
if (node.specifiers.length < 2) {
return;
}
let previousImport = node.specifiers[0];
for (let i = 1; i < node.specifiers.length; i++) {
const currentImport = node.specifiers[i];
// Omit the first condition if you want to put default imports on a new line as well
if (previousImport.type !== 'ImportDefaultSpecifier'
&& currentImport.loc.start.line === previousImport.loc.end.line
) {
context.report({ node, message: 'Your message' });
return;
}
previousImport = currentImport;
}
},
};
},
},
},
};
Je cherchais une telle règle pour la déclaration d'importation et d'exportation. En conséquence, j'ai fait un plugin avec autofix.
Le plugin transforme donc le code
import { k1, k2 } from 'something'
dans
import {
k1,
k2
} from 'something'
et code
export { name1, name2, nameN }
dans
export {
name1,
name2,
nameN
}
Vous devriez peut-être utiliser des espaces à l'intérieur des accolades pour éviter une telle erreur
import { MY_CONSTANT1, MY_CONSTANT2, MY_CONSTANT2 }
Vous pouvez lire à propos de object-curly-spacing rule.
tu peux essayer ça
"semicolon": [true, "always"]