静态代码检查工具eclipse中使用,使用简记

2019-11-02 09:52 来源:未知

 

    今天介绍一个关于js静态代码的检查工具,此工具可以帮助更好的规范代码的编写形式以及检查错误。由于jslint的分支jsHint有跟多的配置项相对使用也比较方便,依次本文主要介绍jsHint的使用方式。

    以下为本文的目录:

 

  1. 关于jsHint的介绍

  2. 关于jsHint的安装

  3. 关于jsHint的使用

  4. 关于jsHint的下载

1.关于jsHint的介绍

    jsHint是jsLint的分支其定义了更多的配置,使用也相对灵活,jsHint主要是用来对javascript静态代码进行规范性检查的,其定义了一些比较严格的规则,这些规则同时也可以自定义配置,关于更为详细的解释说明可以【点击查看jsHint官网】,另外可【点击查看jsLint百度百科解释】,【jsLint官网】。

2.关于jsHint的安装

    jsHint在eclipse中的安装主要可以通过安装eclipse的插件的方式,此时需要像安装安卓adk一样,其安装方式分为离线安装和在线安装,在线安装方式为首先打开help>install new software>add然后输入一个名称,输入插件的地址,插件在线地址可从【插件网站获取】,其图例如下。

图片 1

    另外离线安装方式需要先下载插件可【点击下载最新插件】,然后需要自己创造一个服务器容器例如使用tomcat或者apache容器都可以,然后将插件丢进容器中使其可访问即可,后面的步骤与上类似。

3.关于jsHint的使用

    在eclipse中的安装完成后可以在window>preference中看到jsHint的配置选项,这里是eclipse的全局配置,图示如下:

    图片 2

    当然也可以进行单个项目的特定规则配置,可以选择单个项目并右键,点击jsHint选项,其中可以配置对哪些文件进行校验:

 图片 3

    最后点击jsHint下面的configuration配置可以设置具体的配置信息,图示如下:

图片 4

    部分jsHin的解释如下:

 

JSHint enforcing options
=================
  
#### * bitwise
    
    作用:值为true时,禁止使用位操作符,如"^,|,&"等.
    
#### * camelcase
  
    作用:值为true时,变量名必须使用驼峰风格(如"loginStatus")或UPPER_CASE风格(如"LOGIN_STATUS").
    
#### * curly
    
    作用:值为true时,不能省略循环和条件语句后的大括号.
    
    备注:如"if (con) ...",需要写成"if (con) { ... }".
    
#### * eqeqeq
    
    作用:值为true时,禁止使用"=="和"!=",而应该使用"==="和"!==".
    
#### * es3
    
    作用:值为true时,表示你的代码需要遵守ECMAScript 3规范.
    
#### * forin
    
    作用:值为true时,在所有"for in"循环中,必须使用hasOwnPropery过滤掉对象继承来的成员.
    
#### * immed
    
    作用:???.
    
#### * indent
    
    作用:该选项要求你的代码必须使用指定的tab缩进宽度,如"indent:4".
    
#### * latedef
    
    作用:值为true时,禁止在变量定义之前使用它.
    
#### * newcap
    
    作用:值为true时,构造函数名需要大写. 
    
    备注:经测试,该选项是否激活,JSHint都不会检查构造函数名.
    
#### * noarg
    
    作用:值为true时,禁止使用arguments.caller与arguments.callee.
    
#### * noempty
    
    作用:值为true时,不允许代码中出现空的语句块("{}").
    
#### * nonew
    
    作用:值为true时,禁止使用产生副作用的构造器调用方式,如"new MyConstructor();".
    
#### * plusplus
    
    作用:值为true时,禁止使用一元递增("++")和递减("--")运算符.
    
#### * quotmark
    
    作用:该选项用于统一代码中的引号风格,可选的值有三个:
          (1) single -- 只能使用单引号;
          (2) double -- 只能使用双引号;
          (3) true -- 两者任选其一,但不能同时出现.
    
#### * undef
    
    作用:值为true时,禁止使用未定义的变量.
    
#### * unused
    
    作用:该选项激活后,对于"已定义却未使用的变量"会给出警告,可选的值有三个:
          (1) vars -- 只检查变量,不检查函数形参;
          (2) strict -- 检查变量和函数形参;
          (3) true -- 检查变量和函数形参,但允许这种情况:一个未使用的形参后紧随一个被使用的形参.
          
    示例:strict与true的区别
          (1) strict
              function show(x,y) {alert(y);}  // jshint校验结果:'x' is defined but never used
              show(1);
          
          (2) true
              function show(x,y) {alert(y);} // jshint校验结果:pass
              show(1); 
        
#### * strict
    
    作用:值为true时,该选项会要求所有函数在ECMAScript 5的严格模式中运行.
    
    备注:该选项激活后,仅在函数作用域中启用严格模式(如果在全局作用域中启用,可能会影响页面中的第三方JS).

#### * trailing

    作用:值为true时,禁止在代码的末尾出现空白.
    
#### * maxparams

    作用:该选项用于设置每个函数形参数量的上限,如"maxparams:3".
    
#### * maxdepth

    作用:该选项用于设置每个函数中代码块嵌套层级的上限,如"maxdepth:1".
    
    示例:/* jshint maxdepth:1 */
          function show() {
            if (1) {
              if (2) { // jshint校验结果:Blocks are nested too deeply. (2)
                alert('the second nested');
              }
            }
          }
    
#### * maxstatements

    作用:该选项用于设置每个函数中语句数量的上限,如"maxstatements:4".
    
    备注:函数声明被看作一个语句.
    
    示例:/* jshint maxstatements:4 */
          function main() { // jshint校验结果:This function has too many statements. (5)
            var i = 0;
            var j = 0;

            // 函数声明被看作一个语句
            function inner() {
              var i2 = 1;
              var j2 = 1;
              return i2 + j2;
            }

            j = i + j;
            return j;
          }

#### * maxcomplexity

    作用:???
    
#### * maxlen

    作用:该选项用于设定每行的最大字符长度.

以上配置解释来自github【jsHint 配置项说明(汉化版)】。  更详细可参考官网【点击进入官网】。

4.关于jsHint的下载

    同样此处提供作者百度分享链接:

    jsHint插件下载【点击下载】。

 

在Eclipse中安装JSHint插件,eclipsejshint插件

离线安装

1、下载插件包 

2、解压缩后是一个jshint-eclipse-0.9.8.20130728-0004-b94b446文件夹,拷贝至一个web容器中,可以敲地址访问的

例如: xx是项目名称,

3、在Eclipse主菜单,点击: Help > Install New Software…

输入上面的URL,然后选择 JSHint Eclipse Integration

不要急着点Next,当前界面最下一行的复选框勾去掉(Contact all update sites during install to find required software)
后面的安装过程很简单,往下按确定就可以了

 在线安装或如何配置?

请参照这里 

按道理可以直接使用了,但似乎还是不行...

需修改配置,步骤如下:

1、下载官方的jshint.js  (可选操作

Window > Preferences > JSHint   点击JSHint 选择Provide a custom JSHint library file  然后选择刚才下载的jshint.js文件

2、配置验证的选项 Window > Preferences > JSHint > Configuration

图片 5

 1 {
 2     "maxerr": 50, 
 3     "bitwise": true, 
 4     "camelcase": false, 
 5     "curly": true, 
 6     "eqeqeq": true, 
 7     "forin": true, 
 8     "immed": false, 
 9     "indent": 4, 
10     "latedef": false, 
11     "newcap": false, 
12     "noarg": true, 
13     "noempty": true, 
14     "nonew": false, 
15     "plusplus": false, 
16     "quotmark": false, 
17     "undef": true, 
18     "unused": true, 
19     "strict": true, 
20     "trailing": false, 
21     "maxparams": false, 
22     "maxdepth": false, 
23     "maxstatements": false, 
24     "maxcomplexity": false, 
25     "maxlen": false, 
26     "asi": false, 
27     "boss": false, 
28     "debug": false, 
29     "eqnull": false, 
30     "es5": false, 
31     "esnext": false, 
32     "moz": false, 
33     "evil": false, 
34     "expr": false, 
35     "funcscope": false, 
36     "globalstrict": false, 
37     "iterator": false, 
38     "lastsemic": false, 
39     "laxbreak": false, 
40     "laxcomma": false, 
41     "loopfunc": false, 
42     "multistr": false, 
43     "proto": false, 
44     "scripturl": false, 
45     "smarttabs": false, 
46     "shadow": false, 
47     "sub": false, 
48     "supernew": false, 
49     "validthis": false, 
50     "browser": true, 
51     "couch": false, 
52     "devel": true, 
53     "dojo": false, 
54     "jquery": false, 
55     "mootools": false, 
56     "node": false, 
57     "nonstandard": false, 
58     "prototypejs": false, 
59     "rhino": false, 
60     "worker": false, 
61     "wsh": false, 
62     "yui": false, 
63     "nomen": false, 
64     "onevar": false, 
65     "passfail": false, 
66     "white": false, 
67     "globals": { }
68 }

图片 6

详细参数说明:

图片 7

 1 {
 2     // JSHint Default Configuration File (as on JSHint website)
 3     // See http://jshint.com/docs/ for more details
 4 
 5     "maxerr"        : 50,       // {int} Maximum error before stopping
 6 
 7     // Enforcing
 8     "bitwise"       : true,     // true: Prohibit bitwise operators (&, |, ^, etc.)
 9     "camelcase"     : false,    // true: Identifiers must be in camelCase
10     "curly"         : true,     // true: Require {} for every new block or scope
11     "eqeqeq"        : true,     // true: Require triple equals (===) for comparison
12     "forin"         : true,     // true: Require filtering for..in loops with obj.hasOwnProperty()
13     "immed"         : false,    // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
14     "indent"        : 4,        // {int} Number of spaces to use for indentation
15     "latedef"       : false,    // true: Require variables/functions to be defined before being used
16     "newcap"        : false,    // true: Require capitalization of all constructor functions e.g. `new F()`
17     "noarg"         : true,     // true: Prohibit use of `arguments.caller` and `arguments.callee`
18     "noempty"       : true,     // true: Prohibit use of empty blocks
19     "nonew"         : false,    // true: Prohibit use of constructors for side-effects (without assignment)
20     "plusplus"      : false,    // true: Prohibit use of `++` & `--`
21     "quotmark"      : false,    // Quotation mark consistency:
22                                 //   false    : do nothing (default)
23                                 //   true     : ensure whatever is used is consistent
24                                 //   "single" : require single quotes
25                                 //   "double" : require double quotes
26     "undef"         : true,     // true: Require all non-global variables to be declared (prevents global leaks)
27     "unused"        : true,     // true: Require all defined variables be used
28     "strict"        : true,     // true: Requires all functions run in ES5 Strict Mode
29     "trailing"      : false,    // true: Prohibit trailing whitespaces
30     "maxparams"     : false,    // {int} Max number of formal params allowed per function
31     "maxdepth"      : false,    // {int} Max depth of nested blocks (within functions)
32     "maxstatements" : false,    // {int} Max number statements per function
33     "maxcomplexity" : false,    // {int} Max cyclomatic complexity per function
34     "maxlen"        : false,    // {int} Max number of characters per line
35 
36     // Relaxing
37     "asi"           : false,     // true: Tolerate Automatic Semicolon Insertion (no semicolons)
38     "boss"          : false,     // true: Tolerate assignments where comparisons would be expected
39     "debug"         : false,     // true: Allow debugger statements e.g. browser breakpoints.
40     "eqnull"        : false,     // true: Tolerate use of `== null`
41     "es5"           : false,     // true: Allow ES5 syntax (ex: getters and setters)
42     "esnext"        : false,     // true: Allow ES.next (ES6) syntax (ex: `const`)
43     "moz"           : false,     // true: Allow Mozilla specific syntax (extends and overrides esnext features)
44                                  // (ex: `for each`, multiple try/catch, function expression…)
45     "evil"          : false,     // true: Tolerate use of `eval` and `new Function()`
46     "expr"          : false,     // true: Tolerate `ExpressionStatement` as Programs
47     "funcscope"     : false,     // true: Tolerate defining variables inside control statements"
48     "globalstrict"  : false,     // true: Allow global "use strict" (also enables 'strict')
49     "iterator"      : false,     // true: Tolerate using the `__iterator__` property
50     "lastsemic"     : false,     // true: Tolerate omitting a semicolon for the last statement of a 1-line block
51     "laxbreak"      : false,     // true: Tolerate possibly unsafe line breakings
52     "laxcomma"      : false,     // true: Tolerate comma-first style coding
53     "loopfunc"      : false,     // true: Tolerate functions being defined in loops
54     "multistr"      : false,     // true: Tolerate multi-line strings
55     "proto"         : false,     // true: Tolerate using the `__proto__` property
56     "scripturl"     : false,     // true: Tolerate script-targeted URLs
57     "smarttabs"     : false,     // true: Tolerate mixed tabs/spaces when used for alignment
58     "shadow"        : false,     // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
59     "sub"           : false,     // true: Tolerate using `[]` notation when it can still be expressed in dot notation
60     "supernew"      : false,     // true: Tolerate `new function () { ... };` and `new Object;`
61     "validthis"     : false,     // true: Tolerate using this in a non-constructor function
62 
63     // Environments
64     "browser"       : true,     // Web Browser (window, document, etc)
65     "couch"         : false,    // CouchDB
66     "devel"         : true,     // Development/debugging (alert, confirm, etc)
67     "dojo"          : false,    // Dojo Toolkit
68     "jquery"        : false,    // jQuery
69     "mootools"      : false,    // MooTools
70     "node"          : false,    // Node.js
71     "nonstandard"   : false,    // Widely adopted globals (escape, unescape, etc)
72     "prototypejs"   : false,    // Prototype and Scriptaculous
73     "rhino"         : false,    // Rhino
74     "worker"        : false,    // Web Workers
75     "wsh"           : false,    // Windows Scripting Host
76     "yui"           : false,    // Yahoo User Interface
77 
78     // Legacy
79     "nomen"         : false,    // true: Prohibit dangling `_` in variables
80     "onevar"        : false,    // true: Allow only one `var` statement per function
81     "passfail"      : false,    // true: Stop on first error
82     "white"         : false,    // true: Check against strict whitespace and indentation rules
83 
84     // Custom Globals
85     "globals"       : {}        // additional predefined global variables
86 }

图片 8

相关参考资料:

  jshint官网 

  在 Eclipse 中使用 JSHint 检查 JavaScript 代码

  在Eclipse中使用JSLint保证JavaScript代码质量 

  jsint4java 精简安装

  JSLint for eclipse 安装以及setting 说明

离线安装 1、下载插件包 2、...

Eclipse 使用简记

本文针对 Eclipse Neon (4.6)版本进行说明,具体而言是 Eclipse IDE for Java EE Developers

下载 Eclipse

  • eclipse 是开源免费软件,可到eclipse 官网 处获取到下载链接地址。
  • eclipse 有两种方式下载,直接下载独立安装的ZIP程序包,或者使用 Eclipse Installer 进行在线安装.
  • eclipse 下载页面地址:

图片 9

TAG标签:
版权声明:本文由金沙澳门官网4166发布于世界史,转载请注明出处:静态代码检查工具eclipse中使用,使用简记