在使用seajs+jquery的项目里,如果不设置eslint env环境变量 ,define和$都会提示未定义
{"resource": "/d:/project/add.js","owner": "eslint","code": "no-undef","severity": 8,"message": "'define' is not defined.","source": "eslint","startLineNumber": 4,"startColumn": 1,"endLineNumber": 4,"endColumn": 7}
{"resource": "/d:/project/add.js","owner": "eslint","code": "no-undef","severity": 8,"message": "'$' is not defined.","source": "eslint","startLineNumber": 5,"startColumn": 5,"endLineNumber": 5,"endColumn": 6}
解决
在.eslintrc配置文件里,设置evn,jquery和amd为true
"env": {"browser": true,"node": true,"jquery":true,"amd":true},
其他环境变量
browser - 浏览器全局变量。node - Node.js全局变量和Node.js范围。commonjs - CommonJS全局变量和CommonJS范围(将此用于使用Browserify / WebPack的仅浏览器代码)。shared-node-browser - Node.js和Browser共有的全局变量。es6- 启用除模块之外的所有ECMAScript 6功能(这会自动将ecmaVersion解析器选项设置为6)。worker - 网络工作者全局变量。amd- 根据amd规范定义require()和define()作为全局变量。mocha - 添加所有Mocha测试全局变量。jasmine - 为版本1.3和2.0添加了所有Jasmine测试全局变量。jest - Jest全局变量。phantomjs - PhantomJS全局变量。protractor - 量角器全局变量。qunit - QUnit全局变量。jquery - jQuery全局变量。prototypejs - Prototype.js全局变量。shelljs - ShellJS全局变量。meteor - 流星全球变量。mongo - MongoDB全局变量。applescript - AppleScript全局变量。nashorn - Java 8 Nashorn全局变量。serviceworker - 服务工作者全局变量。atomtest - 原子测试辅助全局。embertest - 灰烬测试助手全局。webextensions - WebExtensions全局变量。greasemonkey - GreaseMonkey全局变量。
参考:
eslint使用注意事项
eslint环境变量设置
该规则禁止词法声明(`let`,`const`,`function`和`class`在)`case/ default`条款。原因是词法声明在整个开关块中是可见的,但只有在分配时才会被初始化,这只有在达到定义它的情况下才会发生。
如果您希望通过启用环境来允许一组全局变量,但仍希望禁止其中某些变量,则禁止使用特定的全局变量非常有用。 例如,早期的Internet Explorer版本将当前的DOM事件暴露为全局变量 event,但是长期以来,使用此变量一直被认为是一种不好的做法。限制此操作将确保在浏览器代码中不使用此变量。