为什么 运行 Google JavaScript 通过 Grunt 的 Linter 会失败?
Why does running Google JavaScript Linter via Grunt fail?
我们使用 gjslinter 和 Grunt 来检查我们项目中的所有 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/**']
}
}
但是当我开始 linting 时它失败了:
$ grunt gjslint Running "gjslint:all" (gjslint) task
Warning: Task "gjslint:all" failed. Use --force to continue.
Aborted due to warnings.
为什么?路径应该是正确的。没有更多的错误消息或报告。我该如何调试?
我按照以下步骤找到了解决方案(此处为 Windows 10):
- 已安装 Python2.7 https://www.python.org/downloads/
- 添加 Python 安装目录
C:/Python27
以及 C:/Python27/Scripts
到 PATH
和 PYTHONPATH
env 变量
通过 运行 安装 Google JavaScript Linter 在命令行中:
pip install https://github.com/google/closure-linter/zipball/master
更改了 Grunt 的记者设置:
(Gruntfile.js):
reporter: {
name: 'console' //report to console
}
现在我在 运行 grunt gjslint
时在控制台中收到正确的错误消息。它告诉我有一个 min.js 文件有一些无效代码。因此,我通过为最小文件添加例外将其从 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'
]
这解决了问题!
我们使用 gjslinter 和 Grunt 来检查我们项目中的所有 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/**']
}
}
但是当我开始 linting 时它失败了:
$ grunt gjslint Running "gjslint:all" (gjslint) task
Warning: Task "gjslint:all" failed. Use --force to continue.
Aborted due to warnings.
为什么?路径应该是正确的。没有更多的错误消息或报告。我该如何调试?
我按照以下步骤找到了解决方案(此处为 Windows 10):
- 已安装 Python2.7 https://www.python.org/downloads/
- 添加 Python 安装目录
C:/Python27
以及C:/Python27/Scripts
到PATH
和PYTHONPATH
env 变量 通过 运行 安装 Google JavaScript Linter 在命令行中:
pip install https://github.com/google/closure-linter/zipball/master
更改了 Grunt 的记者设置:
(Gruntfile.js):
reporter: {
name: 'console' //report to console
}
现在我在 运行 grunt gjslint
时在控制台中收到正确的错误消息。它告诉我有一个 min.js 文件有一些无效代码。因此,我通过为最小文件添加例外将其从 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'
]
这解决了问题!