`

grunt-contrib-jshint使用

阅读更多

使用grunt-contrib-jshint插件

 

jshint:A Static Code Analysis Tool for JavaScript(javascript验证工具)。它有很多种安装方法。http://jshint.com/install/。这篇文章主要介绍作为grunt插件的安装方法。

1、安装jshint

  安装前提:需要安装node和grunt。http://blog.csdn.net/wangfupeng1988/article/details/46418203

  ①windows平台下:npm install grunt-contrib-jshint --save-dev

  ②其他平台前面加sudo

  ③注:--save-dev是为了在package.json自动构建devDependencies。可手动设置。

2、配置

  ①可在Gruntfile.js中进行配置,

复制代码
grunt.initConfig({
  jshint: {
    options: {
      curly: true,
      eqeqeq: true,
      eqnull: true,
      browser: true,
      globals: {
        jQuery: true
      },
    },
    uses_defaults: ['dir1/**/*.js', 'dir2/**/*.js'],
    with_overrides: {
      options: {
        curly: false,
        undef: true,
      },
      files: {
        src: ['dir3/**/*.js', 'dir4/**/*.js']
      },
    }
  },
});
复制代码

   ②可使用外部jshintrc文件,加下划线的代码表示的是与Gruntfile.js相同目录的jshintrc文件,也可以是其他目录下的jshintrc文件,使用相对目录就行了。

复制代码
grunt.initConfig({
  jshint: {
    options: {
      jshintrc: '.jshintrc'
    },
    uses_defaults: ['dir1/**/*.js', 'dir2/**/*.js'],
    with_overrides: {
      options: {
        curly: false,
        undef: true,
      },
      files: {
        src: ['dir3/**/*.js', 'dir4/**/*.js']
      },
    }
  },
});
复制代码

 

  .jshintrc文件(标准JSON文件):

复制代码
{
  "curly": true,
  "eqeqeq": true,
  "eqnull": true,
  "browser": true,
  "globals": {
    "jQuery": true
  }
}
复制代码

 

3、配置参数解释

  bitwise:是否禁止使用位运算,因为在javascript使用位运算的时候很少,并且很多时候会把&&错写为&。

  camelCase:验证变量是否是骆驼式或UPPER_CASE写法;过时的,在后面的jshint中会移除。

  curly:使用大括号,比如if(true) dosomething();需要使用大括号,if(true) {dosomething();}

  eqeqeq:强制==(!=)为===(!==)

  es3:按照ECMAScript 3标准执行,针对IE6/7/8/9

  es5:按照ECMAScript 5.1标准执行,对于低级的浏览器不适用

  forin:验证循环的属性是否是对象自己的,而不是继承的。如果没有使用hasOwnproperty会报错

  freeze:禁止重写本地对象的原型链,如禁止Array.property.someAttr = function(){};

  funcscope:如果局部作用域使用了外部变量,则提示。

  futurehostile:提示是否使用了未来可能会出现的标识符

  globals:设置全局变量白名单

  iterator:迭代器,所有浏览器都不支持。

  latedef:This option prohibits the use of a variable before it was defined.

  maxcomplexity:最大复杂度

  maxdepth:最大深度

  maxerr:最大警告数,默认为50

  maxlen:每一行代码的最大长度;过时的,将被移除

  maxparams:每个函数的最大参数个数

  maxstatements:每一个函数最多包含的statement的数目

  noarg:禁止使用arguments.caller 和 arguments.callee

  nocomma:在一个statement中禁止使用逗号,好无理的要求

  noempty:禁止空的block,过时的,将被移除

  nonbsp:禁止空格

  nonew:禁止使用不赋值的构造函数,例:new NewConstructor();

  notypeof:在使用typeof的时候,对比的值不存在typeof结果列表中,警告

  shadow:http://jshint.com/docs/options/#shadow

  singleGroups:http://jshint.com/docs/options/#singleGroups

  strict:ECMAScript 5严格模式

  undef:未声明变量

  unused:未使用变量

  varstmt:禁止使用var申明变量

 

  asi:分号

  boss:http://jshint.com/docs/options/#boss

  debug:如果出现debugger statement,则报错

  elision:uses ES3 array elision elements

  eqnull:如果代码中使用了==null,则报错,无理的要求。

  esnext:使用ECMAScript 6语法解析,可惜的是ECMAScript还未定稿,所以这个验证也不标准。并且没有任何浏览器实现ECMAScript 6.

  evil:当使用eval的时候报错

  expr:http://jshint.com/docs/options/#expr

  gloablstrict:当使用全局严格模式时报错

  lastsemic:允许在块的最后不适用分号

  loopfunc:http://jshint.com/docs/options/#loopfunc

  moz:Mozilla JavaScript 扩展

  plusplus:禁止使用++和--

  proto:当使用__proto__时报错

  scripturl:http://jshint.com/docs/options/#scripturl

  supernew:禁止使用这些操作:new function () { ... } and new Object;.

  validthis:验证this变量

  withstmt:禁止使用with操作

  

  browser:浏览器环境

  其他生产环境:http://jshint.com/docs/options/#environments

 

4、常用的参数

  bitwise、curly、eqeqeq、es3、forin、freeze、funcscrop、futurehostile、globals、latedef、noarg、nonbsp、notypeof、strict、undef、unused

  asi、eqnull、evil、expr、globalstict、loopfunc、plusplus、validthis、withstmt

  生产环境:browser、jquery、dojo、node、qunit、prototypejs、yui

5、加载插件,在grunt.initConfig代码之后

  grunt.loadNpmTasks('grunt-contrib-jshint');

6、注册任务,在加载插件之后

  grunt.registerTask('core-js', ['jshint:core']);

7、使用,在终端中输入以下代码

  grunt core-js

8、例子:

  

复制代码
 1 // Gruntfile.js文件
 2 module.exports = function( grunt ) {
 3   'use strict';
 4 
 5   grunt.initConfig({
 6 
 7     pkg : grunt.file.readJSON('package.json'),
 8 
 9     jshint : {
10       options : {
11         jshintrc : '.jshintrc'
12       },
13       core : {
14         src : 'src/js/**/*.js'
15       }
16     }
17 
18   });
19 
20   grunt.loadNpmTasks('grunt-contrib-jshint');
21 
22   grunt.registerTask('core-js', ['jshint:core']);
23 
24   grunt.registerTask('default', []);
25 };
复制代码

 

复制代码
 1 // .jshintrc文件代码,标准json格式,与Gruntfile.js同一级目录
 2 {
 3   "bitwise": true,
 4   "curly": false,
 5   "eqeqeq": false,
 6   "es3": true,
 7   "freeze": true,
 8   "funcscrop": true,
 9   "futurehostile": true,
10   "latedef": true,
11   "noarg": true,
12   "nonbsp": true,
13   "notypeof": true,
14   "strict": true,
15   "undef": true,
16   "unused": true,
17   "asi": true,
18   "eqnull": true,
19   "evil": true,
20   "globalstrict": true,
21   "loopfunc": true,
22   "plusplus": false,
23   "validthis": true,
24   "withstmt": true,
25   "browser": true,
26   "jquery": true
27 }
分享到:
评论

相关推荐

    前端开源库-grunt-contrib-testem

    **前端开源库-grunt-contrib-testem** 在前端开发中,自动化测试是确保代码质量与项目稳定性的关键步骤。`grunt-contrib-testem` 是一个非常有用的工具,它将测试框架Testem与Grunt任务运行器集成在一起,使得前端...

    前端开源库-grunt-contrib

    5. `grunt-contrib-jshint`:代码质量检查工具,帮助开发者发现潜在的语法错误和不规范的编码习惯。 6. `grunt-contrib-imagemin`:图片压缩插件,减小图片大小,优化网站加载速度。 7. `grunt-contrib-copy`:...

    前端开源库-grunt-lib-contrib

    通过使用grunt-lib-contrib,开发者能够更加便捷地集成和扩展Grunt的任务,提升工作效率,同时也降低了由于不同任务之间不一致或冲突带来的问题。对于大型项目或团队协作来说,这样的工具是不可或缺的,因为它能够...

    grunt-contact 模块

    `grunt-contrib-jshint`用于JavaScript代码质量检查;`grunt-contrib-requirejs`用于优化AMD模块(如RequireJS);`grunt-contrib-concat`用于文件合并;而`grunt-cli`是Grunt命令行接口,需要全局安装以便于在任何...

    grunt-contrib-jshint:使用JSHint验证文件

    grunt-contrib-jshint v3.0.0 使用JSHint验证文件 入门 如果您以前从未使用过 ,请务必查看《指南》,因为它说明了如何创建以及安装和使用Grunt插件。 熟悉该过程后,可以使用以下命令安装此插件: npm install ...

    simple-grunt-example:为 grunt-contrib-jshint 和 grunt-contrib-watch 创建一个简单的例子

    本示例将介绍如何使用`grunt-contrib-jshint`和`grunt-contrib-watch`这两个Grunt插件创建一个简单的项目管理流程。 **1. Grunt简介** Grunt是由Tom Doherty开发的JavaScript任务运行器,基于Node.js平台。它通过...

    前端开源库-grunt-simple-istanbul

    npm install --save-dev grunt grunt-contrib-jshint grunt-simple-istanbul ``` 然后在`Gruntfile.js`中配置插件: ```javascript module.exports = function(grunt) { grunt.initConfig({ jshint: { all: ['...

    grunt-1.0.1.tar.gz

    但其真正的强大之处在于丰富的第三方插件生态系统,这些插件扩展了Grunt的功能,如`grunt-contrib-jshint`用于代码质量检查,`grunt-contrib-watch`用于文件变动监听。 五、Grunt工作流示例 一个典型的Grunt工作...

    grunt-1.4.1.tar.gz

    Grunt拥有丰富的插件生态系统,涵盖代码质量检查(如jshint)、CSS预处理器(如less、sass)、模板引擎编译(如handlebars)、图片优化(如grunt-contrib-imagemin)等各个方面,几乎可以满足所有前端开发的自动化...

    前端js和css的压缩合并之grunt

    也可以一次性安装多个插件,如`npm install --save-dev grunt-contrib-concat grunt-contrib-jshint grunt-contrib-sass grunt-contrib-uglify grunt-contrib-watch grunt-contrib-connect`。 4. **配置Gruntfile....

    grunt-task-loader:Grunt的Grunt任务加载器

    loadNpmTasks ( 'grunt-contrib-jshint' ) ; grunt . loadNpmTasks ( 'grunt-contrib-watch' ) ; grunt . loadNpmTasks ( 'grunt-...' ) ; grunt . loadTasks ( 'foo' ) ; grunt . loadTasks ( 'bar' ) ; grunt . ...

    Modules04. Bower&Grunt.pdf_前端学习资料

    contrib-uglify`分别用于CSS和JavaScript的压缩,`grunt-contrib-jshint`执行代码质量检查,`grunt-contrib-htmlmin`压缩HTML,`grunt-contrib-requirejs`处理AMD模块,以及`grunt-contrib-connect`提供本地服务器等...

    Grunt中文文档.doc

    "grunt-contrib-jshint": "~0.6.3", "grunt-contrib-nodeunit": "~0.2.0", "grunt-contrib-uglify": "~0.2.2" } } ``` 运行`npm install`会安装这些指定版本的依赖库。若需安装新的Grunt插件,如安装最新版本的...

    Grunt前端开发工具部署

    - **grunt-contrib-jshint**:检查JavaScript代码质量。 - **grunt-contrib-sass**:编译Sass到CSS。 - **grunt-contrib-imagemin**:压缩图片资源。 - **grunt-contrib-copy**:复制文件或目录。 通过灵活组合这些...

    grunt项目构建样例

    同理,对于CSS文件,可以使用`grunt-contrib-cssmin`插件进行压缩合并。 5. **运行Grunt任务** 在配置完成后,可以通过命令行执行`grunt`或特定任务(如`grunt concat`,`grunt uglify`),Grunt会按照配置自动...

    grunt-1321.zip

    让我们看一个实际的例子,假设我们要使用Grunt进行JavaScript和CSS的构建: ```javascript grunt.initConfig({ concat: { dist: { src: ['src/js/*.js'], // 源文件 dest: 'build/js/bundle.js' // 输出文件 }...

    学习grunt

    例如,我们可以通过`grunt-contrib-jshint`插件进行JavaScript代码检查,`grunt-contrib-watch`插件实现文件变动监听,以及`grunt-contrib-concat`插件用于文件合并。 在`Gruntfile.js`中加载插件并配置后,你可以...

    My-Grunt-Boilerplate:我的 Web 项目的 grunt 样板

    watch --save-devnpm install grunt-contrib-jshint --save-devnpm install grunt-contrib-uglify --save-devnpm install grunt-contrib-compass --save-devnpm install grunt-contrib-copy --save-devnpm inst

    jshint-json:JSHint的JSON报告程序

    jshint-json JSON报告程序 使JSHint与其他工具一起使用变得容易。 安装 npm install --save-dev jshint-json 用法 JSHint CLI $ jshint --reporter node_modules/jshint-json/json.js file.js grunt . ...

    grunt学习笔记

    - `grunt-contrib-jshint`:JavaScript 代码风格检查。 - `grunt-browserify`:使用 Browserify 将 CommonJS 模块打包为浏览器可执行的代码。 - `grunt-usemin`:处理 HTML 文件中的引用,例如替换压缩后的 CSS 和 ...

Global site tag (gtag.js) - Google Analytics