eslintrc.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. module.exports = {
  2. extends: [
  3. 'eslint:recommended',
  4. 'plugin:vue/recommended'
  5. ],
  6. plugins: [
  7. 'vue'
  8. ],
  9. rules: {
  10. // Règles générales
  11. 'no-console': 'off', // Autoriser l'utilisation de console.log() (peut être personnalisé selon vos besoins)
  12. 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', // Interdire l'utilisation de debugger dans les environnements de production
  13. 'no-unused-vars': 'warn', // Avertir en cas de variables non utilisées
  14. // Règles spécifiques à Vue.js
  15. 'vue/attribute-hyphenation': 'error', // Utiliser la notation kebab-case pour les attributs dans les templates
  16. 'vue/component-definition-name-casing': ['error', 'PascalCase'], // Utiliser PascalCase pour les noms de composants Vue
  17. 'vue/html-closing-bracket-newline': ['error', {
  18. 'singleline': 'never', // Pas de nouvelle ligne après une balise de fermeture en ligne
  19. 'multiline': 'always' // Nouvelle ligne après une balise de fermeture multiligne
  20. }],
  21. 'vue/html-closing-bracket-spacing': ['error', {
  22. 'startTag': 'never', // Pas d'espace avant la balise de fermeture
  23. 'endTag': 'never', // Pas d'espace avant la balise de fermeture
  24. 'selfClosingTag': 'always' // Espace avant la balise de fermeture des balises auto-fermantes
  25. }],
  26. 'vue/html-indent': ['error', 2, {
  27. 'attribute': 1, // Indentation des attributs
  28. 'baseIndent': 1, // Indentation de base du contenu
  29. 'closeBracket': 0, // Pas d'indentation pour les balises de fermeture
  30. 'alignAttributesVertically': true // Aligner les attributs verticalement
  31. }],
  32. 'vue/max-attributes-per-line': ['error', {
  33. 'singleline': 3, // Maximum de 3 attributs par ligne en ligne unique
  34. 'multiline': {
  35. 'max': 1, // Maximum de 1 attribut par ligne en mode multiligne
  36. 'allowFirstLine': false // Interdire les attributs sur la première ligne en mode multiligne
  37. }
  38. }],
  39. 'vue/no-v-html': 'off', // Autoriser l'utilisation de v-html
  40. 'vue/require-default-prop': 'off', // Ne pas exiger de valeur par défaut pour les props
  41. 'vue/singleline-html-element-content-newline': 'off', // Autoriser le contenu en ligne dans les éléments HTML
  42. }
  43. };