J'assigne une propriété à l'objet window global, mais quand j'exécute eslint, j'obtiens ceci:
"fenêtre" n'est pas défini
Je vois ceci ici dans la documentation eslint :
ce qui suit définit window comme une variable globale pour le code qui ne doit pas déclencher la règle testée:
valid: [
{
code: "window.alert()",
globals: [ "window" ]
}
]
J'ai essayé d'ajouter quelque chose comme ceci au fichier package.json pour qu'eslint autorise "fenêtre" en tant que variable globale, mais je dois faire quelque chose de mal. D'après la documentation, il me semble que je devrais peut-être faire quelque chose comme cela dans un fichier séparé, mais existe-t-il un moyen de définir des variables globales autorisées directement dans le fichier package.json?
Je l'ai trouvé sur cette page: http://eslint.org/docs/user-guide/configuring
Dans package.json, cela fonctionne:
"eslintConfig": {
"globals": {
"window": true
}
}
environment: browser
contient window
.
Exemple .eslintrc.json
:
"env": {
"browser": true,
"node": true,
"jasmine": true
},
Plus d'informations: http://eslint.org/docs/user-guide/configuring.html#specifying-environments
Voir aussi le package.json
réponse de chevin99 ci-dessous.
Ajoutez .eslintrc
à la racine du projet.
{
"globals": {
"document": true,
"foo": true,
"window": true
}
}
Votre . Eslintrc.json devrait contenir le texte ci-dessous.
Ainsi, ESLint connaît vos variables globales.
{
"env": {
"browser": true,
"node": true
}
}
Je sais qu'il ne demande pas la version inline . Mais comme cette question a presque 100 000 visites et que je suis tombée ici à la recherche de cela, je la laisserai ici pour le prochain codeur:
Assurez-vous que ESLint n’est pas exécuté avec le drapeau --no-inline-config
(si cela ne vous semble pas familier, il est probable que vous soyez prêt à partir). Ensuite, écrivez ceci dans votre code (par souci de clarté et de convention, écrivez-le en haut du fichier):
/* eslint-env browser */
Cela indique à ESLint que votre environnement de travail est un navigateur. Il sait donc ce qu’il contient et s’adapte en conséquence.
Il y a beaucoup de environnements , et vous pouvez en utiliser plusieurs à la fois, par exemple en ligne:
/* eslint-env browser, node */
ou dans le fichier de configuration de votre ESLint.
Un environnement définit des variables globales prédéfinies. Les environnements disponibles sont:
browser
- variables globales du navigateur.node
- Variables globales Node.js et périmètre Node.js.commonjs
- Variables globales CommonJS et portée de CommonJS (utilisez ceci pour le code destiné uniquement à un navigateur qui utilise Browserify/WebPack).shared-node-browser
- Globales communes à Node et au navigateur.[...]
Outre les environnements, vous pouvez le faire ignorer à peu près tout ce que vous voulez. Si cela vous avertit d'utiliser console.log()
mais que vous le souhaitiez néanmoins, insérez simplement:
/* eslint-disable no-console */
Vous pouvez voir la liste de toutes les règles , y compris les règles recommandées pour avoir les meilleures pratiques de codage .
Si vous utilisez Angular, vous pouvez le supprimer avec:
"env": {
"browser": true,
"node": true
},
"rules" : {
"angular/window-service": 0
}