jquery 没有定义ESLint dollar($),(无-f)

rqenqsqc  于 2023-10-17  发布在  jQuery
关注(0)|答案(5)|浏览(128)

我将ESLint添加到我的项目中。一切都很好,除了符号$

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

我得到这个错误:[eslint] '$' is not defined. (no-undef)
我的.eslintrc.json(注:它将additional rules设置为不允许jQuery函数(当存在等效JavaScript函数时):

{
"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"
    ]
}

你可以看到我添加了两个插件:eslint-plugin-dollar-sign和eslint-plugin-jquery。
为什么这个规则不起作用?

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

rpppsulh1#

你就错过

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

如果没有启用jquery环境,$不会被声明为全局。正因为如此,你会得到一个no-undef错误,说你正在使用尚未声明的变量。

b5buobof

b5buobof2#

https://eslint.org/docs/user-guide/configuring#specifying-environments
您可以使用JavaScript文件中的注解指定环境,使用以下格式:
在JavaScript文件的开头添加以下行作为注解。

/* eslint-env jquery */

eslinter将停止在'$'上抛出undefined,因为它知道你正在使用jQuery。

omjgkv6w

omjgkv6w3#

你也可以将这一行添加到js文件的顶部:

/* global $ */

为了防止“$"或任何其他全局变量(如“varName”)发出警告:

/* global varName */
iibxawm4

iibxawm44#

单位:.eslintrc.js
添加

{
  "globals": {
    "$": true
  }
}

请访问https://eslint.org/docs/user-guide/configuring#specifying-globals

b5buobof

b5buobof5#

“env”:{.“jquery”:true },
真的很有帮助

相关问题