Skip to content

Instantly share code, notes, and snippets.

@tdd
Last active Aug 29, 2015
Embed
What would you like to do?
Ma config JSHint par défaut
// Configuration globale au projet de JSHint
// =========================================
//
// (Y compris celui intégré à votre EDI/éditeur, normalement)
//
// [Liste complète des options possibles](http://www.jshint.com/docs/options/)
{
// Options de restriction
// ----------------------
// Exige les accolades pour toute instruction de contrôle (`if`, etc.)
// même si on n'utilise qu'une instruction dedans pour le moment.
"curly": true,
// Exige des (in)égalités strictes : `===` et `!==`
"eqeqeq": true,
// Exige le filtrage des `for…in` par un test `.hasOwnProperty`
"forin": true,
// Exige l'enrobage des IIFEs par des parenthèses
"immed": true,
// Interdit plus de 3 niveaux d'imbrication de blocs
"maxdepth": 3,
// Interdit plus de 3 paramètres déclarés pour une fonction
"maxparams": 3,
// Exige que les fonctions appelées avec `new` démarrent par une majuscule
// (ce qui est traditionnellement le cas pour un constructeur).
"newcap": true,
// Interdit les hacks basés sur `arguments.caller` et `arguments.calleee`
// (qui sont de toutes façons illégaux en ES5 Strict).
"noarg": true,
// Interdit le whitespace en fin de ligne (votre éditeur devrait le nettoyer tout
// seul de toutes façons, comme avec l'option `trim_trailing_white_space_on_save`
// de Sublime Text par exemple).
"trailing": true,
// Interdit l'emploi de variables non explicitement déclarées (ou fournies
// via la directive de commentaire `global`). Permet de détecter rapidement
// des fautes de frappe dans les identifiants, par exemple, ainsi que des
// fuites globales par inadvertance.
"undef": true,
// Avertit de variables ou paramètres non utilisés. Très pratique pour nettoyer
// du code mais aussi pour certains cas de fautes de frappe.
"unused": true,
// Options de relâchement
// ----------------------
// Ces options assouplissent les restrictions mises en place par JSHint,
// qu'elles soient là par défaut ou explicitement au travers d'options.
// Autorise la présence d'expressions `debugger` dans le code.
"debug": true,
// Autorise les (in)égalités laxistes (`==`et `!=`) si l'opérande est `null`,
// afin de gérer d'un coup `null` et `undefined`, ce qui est un cas fréquent.
"eqnull": true,
// Autorise les syntaxes ES6 (`let`, `const`, `yield`, `function*`, `module`…)
"esnext": true,
// Autorise les fonctions dans les boucles ; une [IIFE](http://en.wikipedia.org/wiki/Immediately-invoked_function_expression)
// dans une boucle est une solution classique aux
// [soucis de closure asynchrone](http://www.jshint.com/docs/options/#loopfunc).
"loopfunc": true,
// Options d’environnement
// -----------------------
// Indique un contexte potentiel navigateur, donc une tonne de globaux…
"browser": true,
// Autorise `console`, `alert`, etc.
"devel": true,
// Indique un contexte potentiel Node, donc ses objets globaux (`process`,
// `Buffer`, `global`…) mais aussi le droit à des `'use strict'` globaux aux fichiers
// (puisque ce sont forcément des modules).
"node": true
}

…c'est .jshintrc, mais sur ce coup GitHub / Gist refuse me laisser remplacer la syntaxe JSON, auto-associée au nom, par JavaScript (alors que JSHint est suffisamment sympa pour autoriser les commentaires, ce que JSON refuse comme un gros couillon, merci Douglas).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment