grunt jshint 配置不工作
grunt jshint config not working
为 grunt 设置 jshint 选项时遇到问题
这是我的 gruntfile.js
grunt.initConfig( {
jshint : {
options: {
curly: false,
asi: true,
eqeqeq: false,
maxparams: 5,
undef: false,
unused: false,
eqnull: true,
browser: true,
devel: true,
expr: true,
jquery: true ,
evil : true
},
files : {
src : [
'dev/*.js', 'dev/**/*.js' ,
'files-lib/*.js', 'files-lib/**/*.js' ]
},
},
仍然出现错误
71 | return (this.optional(element) && value=="") ||
re.test(value);
^ Use '===' to compare with ''.
感谢您的帮助
简短回答:您无法在 options
配置中执行任何其他操作来避免这种情况。
更长的答案: 虽然您在 options
配置中将 eqeqeq
属性 设置为 false
,(假设双等号 ==
的实例不应该抛出错误),jshint
在这种情况下我认为正确地将其报告为错误。
正在验证的代码中的 value==""
部分引发错误 (即忽略 eqeqeq: false
选项)。这是有充分理由的!
==
运算符将在进行任何必要的类型转换后比较相等性,这可能会导致 Javascript 中非常古怪的结果。例如:
0 == "" // true
false == "" // true
虽然我很欣赏双等号在许多比较场景中会产生正确的结果,但这个 value==""
示例肯定是一个应该使用三等号的场景,或者如果你是一个只有双等号的人,那么你可以用 value.length == 0
替换 value==""
有关三重等于和双重等于运算符的其他信息,以及它的各种怪癖,可以在这个 post
的答案中找到
为 grunt 设置 jshint 选项时遇到问题
这是我的 gruntfile.js
grunt.initConfig( {
jshint : {
options: {
curly: false,
asi: true,
eqeqeq: false,
maxparams: 5,
undef: false,
unused: false,
eqnull: true,
browser: true,
devel: true,
expr: true,
jquery: true ,
evil : true
},
files : {
src : [
'dev/*.js', 'dev/**/*.js' ,
'files-lib/*.js', 'files-lib/**/*.js' ]
},
},
仍然出现错误
71 | return (this.optional(element) && value=="") || re.test(value); ^ Use '===' to compare with ''.
感谢您的帮助
简短回答:您无法在 options
配置中执行任何其他操作来避免这种情况。
更长的答案: 虽然您在 options
配置中将 eqeqeq
属性 设置为 false
,(假设双等号 ==
的实例不应该抛出错误),jshint
在这种情况下我认为正确地将其报告为错误。
正在验证的代码中的 value==""
部分引发错误 (即忽略 eqeqeq: false
选项)。这是有充分理由的!
==
运算符将在进行任何必要的类型转换后比较相等性,这可能会导致 Javascript 中非常古怪的结果。例如:
0 == "" // true
false == "" // true
虽然我很欣赏双等号在许多比较场景中会产生正确的结果,但这个 value==""
示例肯定是一个应该使用三等号的场景,或者如果你是一个只有双等号的人,那么你可以用 value.length == 0
value==""
有关三重等于和双重等于运算符的其他信息,以及它的各种怪癖,可以在这个 post
的答案中找到