为什么通过Grunt运行Google JavaScript Linter会失败?

时间:2016-07-11 14:33:55

标签: javascript gruntjs jslint lint gjslint

我们使用gjslinter和Grunt来lint项目中的所有js文件。

Gruntfile.js中的配置如下所示:

gjslint: {
    options: {
        flags: ['--disable 220,110,200'],
        reporter: {
            name: 'gjslint_xml',
            dest: '<%= pkg.docs %>/gjslint/gjslint.xml'
        }
    },
    all: {
        src: ['<%= pkg.src %>/assets/js/modules/**', '<%= pkg.src %>/assets/js/lib/jquery/plugins/jquery-hse/**']
    }
}

但是当我开始褪色时它失败了:

$ grunt gjslint Running "gjslint:all" (gjslint) task
Warning: Task "gjslint:all" failed. Use --force to continue.

Aborted due to warnings.

为什么呢?路径应该是正确的。没有更多错误消息或报告。我该怎么调试呢?

1 个答案:

答案 0 :(得分:0)

我通过以下步骤找到了解决方案(在Windows 10上):

  1. 已安装Python2.7 https://www.python.org/downloads/
  2. 将Python安装目录C:/Python27以及C:/Python27/Scripts添加到PATHPYTHONPATH env变量
  3. 通过在命令行中运行来安装Google JavaScript Linter:

    pip install https://github.com/google/closure-linter/zipball/master

  4. 更改了Grunt的记者设置:

  5. (Gruntfile.js):

    reporter: {
        name: 'console' //report to console
    }
    

    现在,我在运行grunt gjslint时在控制台中收到正确的错误消息。它告诉我有一个min.js文件有一些无效的代码。所以,我通过添加min文件的例外来从Gruntfile.js中删除它:

    src: [
      '<%= pkg.src %>/assets/js/modules/**/*.js',
      '<%= pkg.src %>/assets/js/lib/jquery/plugins/jquery-hse/**/*.js',
      '!<%= pkg.src %>/assets/js/**/*.min.js'
    ]
    

    这解决了问题!