1 | # Metalint
|
2 |
|
3 | [![Version][img-version]][link-version]
|
4 | [![Build][img-build]][link-build]
|
5 | [![Dependencies][img-dependencies]][link-dependencies]
|
6 | [![Coverage][img-coverage]][link-coverage]
|
7 | [![License][img-license]][link-license]
|
8 |
|
9 | > *Un linter pour les gouverner tous.*
|
10 |
|
11 | [Site Internet](https://regseb.github.io/metalint/)
|
12 |
|
13 | ## Description
|
14 |
|
15 | **Metalint** est un outil pour analyser tous les fichiers de votre projet.
|
16 | L'analyse est déléguée à des linters (outils d'analyse statique de code source)
|
17 | ou des utilitaires selon le type de fichier :
|
18 |
|
19 | - Add-on de Firefox (WebExtension) :
|
20 | [Add-ons
|
21 | Linter](https://regseb.github.io/metalint/user/linters/addons-linter/) ;
|
22 | - CoffeeScript :
|
23 | [CoffeeLint](https://regseb.github.io/metalint/user/linters/coffeelint/) ;
|
24 | - CSS (SCSS, Sass, Less) :
|
25 | [CSSLint](https://regseb.github.io/metalint/user/linters/csslint/),
|
26 | [doiuse](https://regseb.github.io/metalint/user/linters/doiuse/),
|
27 | [lesshint](https://regseb.github.io/metalint/user/linters/lesshint/),
|
28 | [PurgeCSS](https://regseb.github.io/metalint/user/linters/purgecss/) et
|
29 | [stylelint](https://regseb.github.io/metalint/user/linters/stylelint/) ;
|
30 | - HTML : [HTMLHint](https://regseb.github.io/metalint/user/linters/htmlhint/) et
|
31 | [htmllint](https://regseb.github.io/metalint/user/linters/htmllint/) ;
|
32 | - JavaScript : [ESLint](https://regseb.github.io/metalint/user/linters/eslint/),
|
33 | [Flow](https://regseb.github.io/metalint/user/linters/flow-bin/),
|
34 | [JSCS](https://regseb.github.io/metalint/user/linters/jscs/),
|
35 | [JSHint](https://regseb.github.io/metalint/user/linters/jshint/) et
|
36 | [JavaScript Standard
|
37 | Style](https://regseb.github.io/metalint/user/linters/standard/) ;
|
38 | - JSON : [JSON-Lint](https://regseb.github.io/metalint/user/linters/json-lint/)
|
39 | et [JSON Lint](https://regseb.github.io/metalint/user/linters/jsonlint/) ;
|
40 | - Markdown :
|
41 | [MarkdownLint](https://regseb.github.io/metalint/user/linters/markdownlint/) ;
|
42 | - *package.json* (npm) :
|
43 | [David DM](https://regseb.github.io/metalint/user/linters/david/) ;
|
44 | - TypeScript :
|
45 | [TSLint](https://regseb.github.io/metalint/user/linters/tslint/) ;
|
46 | - YAML : [YAML Lint](https://regseb.github.io/metalint/user/linters/yaml-lint/).
|
47 |
|
48 | ## Installation
|
49 |
|
50 | Vous pouvez installer Metalint en utilisant
|
51 | [npm](https://www.npmjs.com/package/metalint) :
|
52 |
|
53 | ```shell
|
54 | npm install metalint --save-dev
|
55 | ```
|
56 |
|
57 | ## Configuration
|
58 |
|
59 | Tous les fichiers de configuration sont à regrouper dans le répertoire
|
60 | `.metalint/` qui doit être placé à la racine du projet. Le fichier
|
61 | `metalint.json` contient un objet JSON indiquant les linters à utiliser pour
|
62 | chaque fichier. Les autres fichiers contiennent les options spécifiques pour les
|
63 | linters.
|
64 |
|
65 | ## Exemple
|
66 |
|
67 | Dans cet exemple du fichier de configuration `metalint.json`, Metalint analyse
|
68 | les fichiers JavaScript (non-minifiés), HTML et CSS ; avec respectivement les
|
69 | linters ESLint, HTMLHint et stylelint.
|
70 |
|
71 | ```JSON
|
72 | {
|
73 | "patterns": ["!/.git/", "!/node_modules/", "**"],
|
74 | "checkers": [
|
75 | {
|
76 | "patterns": ["!*.min.js", "*.js"],
|
77 | "linters": "eslint"
|
78 | }, {
|
79 | "patterns": "*.html",
|
80 | "linters": "htmlhint"
|
81 | }, {
|
82 | "patterns": "*.css",
|
83 | "linters": "stylelint"
|
84 | }
|
85 | ]
|
86 | }
|
87 | ```
|
88 |
|
89 | ## Usage
|
90 |
|
91 | ```shell
|
92 | metalint
|
93 | ```
|
94 |
|
95 | [img-version]:https://img.shields.io/npm/v/metalint.svg
|
96 | [img-build]:https://img.shields.io/travis/regseb/metalint.svg
|
97 | [img-dependencies]:https://img.shields.io/david/regseb/metalint.svg
|
98 | [img-coverage]:https://img.shields.io/coveralls/regseb/metalint.svg
|
99 | [img-license]:https://img.shields.io/badge/license-EUPL-blue.svg
|
100 |
|
101 | [link-version]:https://www.npmjs.com/package/metalint
|
102 | [link-build]:https://travis-ci.org/regseb/metalint
|
103 | [link-dependencies]:https://david-dm.org/regseb/metalint
|
104 | [link-coverage]:https://coveralls.io/github/regseb/metalint
|
105 | [link-license]:https://joinup.ec.europa.eu/collection/eupl/eupl-text-11-12
|
106 | "Licence publique de l'Union européenne"
|