metalint
TypeScript icon, indicating that this package has built-in type declarations

0.16.0 • Public • Published

Metalint

npm build coverage semver

Un linter pour les gouverner tous.

Description

Metalint est un outil pour analyser tous les fichiers de votre projet. L'analyse est déléguée à des linters (outils d'analyse statique de code source) :

Langage / Technologie Linters
CoffeeScript CoffeeLint
CSS CSSLint, DoIUse, Prettier, PurgeCSS, Stylelint
HTML HTMLHint, htmllint, markuplint, Prettier
JavaScript ESLint, JSHint, JavaScript Standard Style, Prettier
JSON Ajv, @prantlf/JSON Lint, JSON Lint (mod), Prettier
Less Prettier, Stylelint
Markdown MarkdownLint
package.json Depcheck, npm-check-updates, npm-package-json-lint, publint, Sort Package.json
SCSS Prettier, Stylelint
SugarSS Stylelint
SVG Prettier, SVGLint
WebExtension Add-ons Linter
YAML YAML Lint, Prettier

Installation

Vous pouvez installer Metalint en utilisant npm :

npm install --save-dev --save-exact metalint

Configuration

Tous les fichiers de configuration sont à regrouper dans le répertoire .metalint/ qui doit être placé à la racine du projet. Le fichier metalint.config.js export un objet JSON indiquant les linters à utiliser pour chaque fichier. Les autres fichiers contiennent les options spécifiques pour les linters.

Exemple

Dans cet exemple des fichiers de configuration, Metalint analyse les fichiers JavaScript (non-minifiés), HTML et CSS ; avec respectivement les linters ESLint, HTMLHint et Stylelint.

// .metalint/metalint.config.js
export default {
    patterns: ["**", "!/.git/**", "!/node_modules/**"],
    checkers: [
        {
            patterns: ["*.js", "!*.min.js"],
            linters: "eslint",
        }, {
            patterns: "*.html",
            linters: "htmlhint",
        }, {
            patterns: "*.css",
            linters: "stylelint",
        },
    ],
};
// .metalint/eslint.config.js
export default {
    rules: {
        quotes: ["error", "double"],
        semi: ["error", "always"],
    },
};
// .metalint/htmlhint.config.js
export default {
    "attr-value-not-empty": false,
};
// .metalint/stylelint.config.js
export default {
    rules: {
        "color-no-invalid-hex": true,
    },
};

Intégration

npm

Après avoir installé Metalint et les linters dans votre projet npm, vous pouvez ajouter le script suivant dans votre package.json :

{
    "scripts": {
        "lint": "metalint"
    }
}

Metalint est maintenant utilisable avec la commande : npm run lint

GitHub Actions

Pour lancer Metalint dans vos GitHub Actions, vous pouvez utiliser le formateur github pour rapporter les problèmes dans les pull requests.

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-node@v4
      - uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Install dependencies
        run: npm ci
      - name: Lint files
        run: npm run lint -- --formatter github

Package Sidebar

Install

npm i metalint

Weekly Downloads

68

Version

0.16.0

License

MIT

Unpacked Size

259 kB

Total Files

102

Last publish

Collaborators

  • regseb