125 votes

Le dollar ESLint ($) n'est pas défini. (no-undef)

 $("#ID").hide();
 

J'ajoute ESLint à mon projet.

tout va bien, sauf le symbole $ .

Je reçois une erreur: [eslint] '$' is not defined. (no-undef)

mes .eslintrc.json :

 {
"env": {
    "browser": true,
    "commonjs": true,
    "es6": true
},
"extends": [
    "eslint:recommended"
],
"parserOptions": {
    "sourceType": "module"
},
"plugins": [
    "dollar-sign",
    "jquery"
],
"rules": {       
    "indent": [
        "error" ,
        "tab"
    ],
    "linebreak-style": [
        "error",
        "windows"
    ],
    "quotes": [
        "error",
        "double"
    ],
    "semi": [
        "error",
        "always"
    ],
    "jquery/no-ajax": 2,
    "jquery/no-animate": 2,
    "jquery/no-attr": 2,
    "jquery/no-bind": 2,
    "jquery/no-class": 2,
    "jquery/no-clone": 2,
    "jquery/no-closest": 2,
    "jquery/no-css": 2,
    "jquery/no-data": 2,
    "jquery/no-deferred": 2,
    "jquery/no-delegate": 2,
    "jquery/no-each": 2,
    "jquery/no-fade": 2,
    "jquery/no-filter": 2,
    "jquery/no-find": 2,
    "jquery/no-global-eval": 2,
    "jquery/no-has": 2,
    "jquery/no-hide": 2,
    "jquery/no-html": 2,
    "jquery/no-in-array": 2,
    "jquery/no-is": 2,
    "jquery/no-map": 2,
    "jquery/no-merge": 2,
    "jquery/no-param": 2,
    "jquery/no-parent": 2,
    "jquery/no-parents": 2,
    "jquery/no-parse-html": 2,
    "jquery/no-prop": 2,
    "jquery/no-proxy": 2,
    "jquery/no-serialize": 2,
    "jquery/no-show": 2,
    "jquery/no-sizzle": 2,
    "jquery/no-slide": 2,
    "jquery/no-text": 2,
    "jquery/no-toggle": 2,
    "jquery/no-trigger": 2,
    "jquery/no-trim": 2,
    "jquery/no-val": 2,
    "jquery/no-wrap": 2,
    "dollar-sign/dollar-sign": [
        2,
        "ignoreProperties"
    ]
}
 

vous pouvez voir que j'ai ajouté deux plugins: eslint-plugin-dollar-sign et eslint-plugin-jquery.

pourquoi ne fonctionne pas cette règle?

"dollar-sign/dollar-sign": [ 2, "ignoreProperties" ]

239voto

Ilya Volodin Points 2803

Tu es absent

 "env": {
  "browser": true,
  "commonjs": true,
  "es6": true,
  "jquery": true
},
 

$ n'est pas déclaré global sans que l'environnement jquery activé. À cause de cela, vous obtenez une erreur no-undef , indiquant que vous utilisez une variable qui n'a pas été déclarée.

38voto

Frank Genova Points 111

https://eslint.org/docs/user-guide/configuring#specifying-environments

Vous pouvez spécifier des environnements à l'aide d'un commentaire à l'intérieur de votre fichier JavaScript, utilisez le format suivant:

Ajoutez la ligne ci-dessous dans les commentaires au début de votre fichier JavaScript.

    /*eslint-env jquery*/

Le eslinter va cesser de jeter des pas défini sur '$', car il saura vous travaillez avec jQuery.

26voto

ariel Points 5372

Vous pouvez également ajouter cette ligne en haut de votre fichier js:

 /* global $ */
 

Pour éviter les avertissements sur "$", ou pour tout autre global comme "varName":

 /* global varName */
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X