grunt jshint配置无法正常工作

时间:2017-05-25 05:06:35

标签: gruntjs jshint grunt-contrib-jshint

无法为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(值);                                                               ^使用'==='与''进行比较。

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

简短回答:在您的options配置中,您无法做任何其他事情来避免这种情况。

更长的答案:虽然eqeqeq配置中的false属性设置为options,但(假设双等的实例) ==不应该抛出错误)jshint在这个例子中我认为是正确地将此报告为错误。

正在验证的代码中的value==""部分是抛出错误(即它忽略eqeqeq: false选项)。这是有充分理由的!

==运算符将在执行任何必要的类型转换后比较相等性,这可能导致Javascript中非常奇怪的结果。例如:

0 == ""     // true
false == "" // true

虽然我很欣赏double equals为许多比较场景产生正确的结果,但是这个value==""示例肯定是应该使用三等于的情况,或者如果你是一个双等于唯一的人,那么你可以用value==""

替换value.length == 0

关于三等于和双等于运算符的其他信息,以及它的各种怪癖,可以在这个问题的答案中找到post