2016-09-15 61 views
21
$("#ID").hide(); 

我将ESLint添加到我的项目中。

一切都很好,除了符号$

我得到错误:[eslint] '$' is not defined. (no-undef)

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

你可以看到,我已经添加了两个插件:eslint-plugin-dollar-sign和eslint-插件,jQuery的。

为什么这条规则不起作用?

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

回答

60

你缺少

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

$未声明为一个全球性的,而不启用jquery环境。因此,你会得到一个no-undef错误,并说你正在使用尚未声明的变量。