1、contrib-jshint 插件的使用node
一、安装 “grunt-contrib-jshint ”插件命令(在终端进入到项目根目录执行)npm
npm install grunt-contrib-jshint --save-devjson
二、在项目根目录下提供 jshint 插件任务配置须要的 src 目录和须要被检测的源文件(js 源文件放置到 src 目录下)curl
mkdir srcide
三、在 Gruntfile.js 文件中对 jshint 任务进行配置函数
// 包装函数
module.exports = function (grunt) {
// 任务配置,全部插件的配置信息
grunt.initConfig({
// 获取 package.json 的信息
pkg: grunt.file.readJSON('package.json'),
// jshint 插件的配置信息
jshint: {
options: {
'-W060': true, // 根据错误代码屏蔽指定错误
jshintrc: '.jshintrc' // 指定 jshint 语法检测规则的配置文件
},
// 具体任务配置
build: ['src/*.js'] // 须要进行 js 语法检测的源文件,能够同时指定多个文件
}
});
// 加载指定插件任务
grunt.loadNpmTasks('grunt-contrib-jshint');
// 默认执行的任务
grunt.registerTask('default', ['jshint']);
};
PS:jshint 插件的配置有两项:grunt
“options”中经过使用“jshintrc”属性来指定 jshint 语法检测规则的配置文件,.jshintrc 文件中代码的格式也要严格遵照 json 语法规范,不然无效。oop
“build”中指定哪些 js 文件须要进行语法检测。ui
四、最后在终端运行 grunt 命令url
PS:若是提示 "Done, without errors." 证实就没什么问题了。
五、.jshintrc 文件的配置(该文件放置到项目根目录下,json 文件内是不能写注释的,复制下列内容请删除注释)
{
"asi": true, // 是否禁止缺乏分号警告
"loopfunc": true, // 是否禁止函数内部循环
"node": true, // 该文件是否为 node.js 文件
"curly": true, // 代码块是否必须使用大括号
"eqeqeq": false, // 是否使用 "===" 表示相等,"!==" 表示不等
"eqnull": false, // 是否禁止使用 "== null" 比较
"undef": true, // 是否指定变量必须先声明后使用
"strict": false // 是否禁止使用严格模式
}
PS:jshintrc 文件中的选项具体的含义请参考 http://jshint.com/docs/options/