Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous souhaite d'excellentes fêtes de fin d'année !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/11/2018, à 22:53

regseb

Metalint, un linter pour les gouverner tous

Salut,

J'ai développé une application Node.js pour analyser les fichiers de votre projet : Metalint, un linter pour les gouverner tous. Selon le type de fichier, des linters (outils d'analyse statique) externes sont utilisés :

  • Add-on de Firefox : Add-ons Linter ;

  • CoffeeScript : CoffeeLint ;

  • CSS (SCSS, Sass, Less) : CSSLint, doiuse, lesshint, Purgecss et stylelint ;

  • HTML : HTMLHint et htmllint ;

  • JavaScript : ESLint, Flow, JSCS, JSHint et JavaScript Standard Style ;

  • JSON : JSON-Lint et JSONLint ;

  • Markdown : MarkdownLint ;

  • package.json (npm) : David DM ;

  • TypeScript : TSLint ;

  • YAML : YAML Lint.

Les résultats sont ensuite agrégés et les erreurs sont ainsi regroupées par fichier et affichées dans le même format. Grâce à Metalint, vous pouvez analyser un grand nombre de fichier en lançant une seule commande. Toutes les configurations sont rassemblées dans un répertoire. Et les critères de sélection des fichiers à analyser sont regroupées dans un fichier qui aura cette structure :

{
    "patterns": ["!/.git/", "!/node_modules/", "**"],
    "checkers": [
        {
            "patterns": ["!*.min.js", "*.js"],
            "linters": "eslint"
        }, {
            "patterns": "*.html",
            "linters": "htmlhint"
        }, {
            "patterns": "*.css",
            "linters": "stylelint"
        }
    ]
}

Pour voir un exemple plus concret, vous pouvez consulter la configuration d'une WebExtension et les configurations spécifiques aux linters.

Si votre projet est une application Node utilisant déjà des linters (et avec des configurations au format JSON), vous pouvez essayer rapidement Metalint en exécutant les commandes :

npm install metalint --save-dev
npx metalint init
npx metalint

Merci pour votre lecture et voici des liens pour allez plus loin :

Hors ligne