jquery - not - eslint rules
ESLint dollar($) no está definido.(no-undef) (4)
$("#ID").hide();
agrego ESLint a mi proyecto.
todo está bien, excepto el símbolo
$
.
me sale el error:
[eslint] ''$'' is not defined. (no-undef)
[eslint] ''$'' is not defined. (no-undef)
my
.eslintrc.json
(nota: tiene
reglas adicionales
establecidas para no permitir funciones jquery cuando hay una javascript equivalente):
{
"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"
]
}
puede ver que he agregado dos complementos: eslint-plugin-dollar-sign y eslint-plugin-jquery.
¿Por qué no funciona esta regla?
"dollar-sign/dollar-sign": [ 2, "ignoreProperties" ]
En
.eslintrc.js
Añadir
{
"globals": {
"$": true
}
}
Ver https://eslint.org/docs/user-guide/configuring#specifying-globals
Estás perdido
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"jquery": true
},
$
no se declara como global sin el entorno
jquery
habilitado.
Debido a eso, está recibiendo un error
no-undef
, que dice que está usando una variable que no ha sido declarada.
También puede agregar esta línea en la parte superior de su archivo js:
/* global $ */
Para evitar advertencias sobre "$", o para cualquier otro global como "varName":
/* global varName */
https://eslint.org/docs/user-guide/configuring#specifying-environments
Puede especificar entornos usando un comentario dentro de su archivo JavaScript, use el siguiente formato:
Agregue la siguiente línea como comentario al comienzo de su archivo JavaScript.
/*eslint-env jquery*/
El eslinter dejará de lanzar indefinido en ''$'' porque sabrá que está trabajando con jQuery.