JSHint JSHint是由Anton Kovalyov基于JSLint的代码实现的开源项目,由于JSLint时期大多数人都在受JSLint压迫,JSHint相比较之下,更友好,也更容易配置,所以很快就发展了起来 在这里还要提一点,ESLint最初并不是为了造一个重复的轮子,而是作者在实际使用中的需求没有能得到JSHint团队的回应,所以他就结合当时的JSHint和另一个代码风格的检查工具JSCS写出来了现在具备代码风格检查 JSLint,JSHint和ESLint的对比 这三个工具各有特色,我只是做一下对比,选择的话,看个人需求就好了。 JSLint 优点 配置是老道已经定好的,开箱即用。 支持配置文件,方便使用 支持了一些常用类库 支持了基本的ES6 不足 不支持自定义规则 无法根据错误定位到对应的规则 ESLint 优点 默认规则里面包含了JSLint和JSHint的规则,易于迁移( 的Vim配置 安装jshint sudo npm install jshint -g 在vimrc中添加如下配置 let g:syntastic_javascript_checkers = ['jshint
安装vscode jshint插件时遇到报错,右下角提示如下信息: Failed to load jshint library.Please install jshint in your workspace folder using’npm install jshint’or globally using’npm install -g jshint’and then press Retry. ? 网上查找了一些方法,打开Windows PowerShell命令行窗口 输入以下命令安装jshint: npm install -g jshint 敲回车后到vscode中点击Retry,就可以了。
默认,JSHint会要求你在每个语句后面加上分号,但是如果你认为自己理解了asi(automatic semicolon insertion),你可以抛弃JSHint对分号的检查。 ,JSHint则不会检查换行。 maxerr 设定错误的阈值,超过这个阈值jshint不再向下检查,提示错误太多。 newcap 如果为真,JSHint会要求每一个构造函数名都要大写字母开头。 noempty 如果为真,JSHint会禁止出现空的代码块(没有语句的代码块)。 如果为真,JSHint会禁用构造器,以避免一些问题。 onevar 如果为真,JSHint期望函数只被var的形式声明一遍。 passfail 如果为真,JSHint会在发现首个错误后停止检查。
一旦项目使用 Jshint 工具检测时,往往会爆出大量的分号缺失错误提示。 Missing semicolon. (W033)jshint(W033) 一个一个添加分号,工作量巨大,效率低。 二、修复问题 Missing semicolon 首先,通过以下命令全局安装 jshint npm install -g jshint 1. /bin/sh for i in `jshint $1 | grep -i "Missing semicolon" \ | sed -e 's/\([^0-9]*\)\([0-9]*\)\(.*$\)/ /bin/sh for i in `jshint $1 | grep -i "Missing semicolon" \ | gsed -e 's/\([^0-9]*\)\([0-9]*\)\(.*$\)
JavaScript 语法检查 SublimeLinter-jshint 是基于 nodeJS 下的 jshint 的插件,实际上 SublimeLinter-jshint 调用了 nodeJS 中 jshint 安装 SublimeLinter-jshint 为了让 JavaScript 代码有语法检查,我们安装 SublimeLinter-jshint 同样的方法,我们安装 SublimeLinter-jshint jshint,所以我们安装 nodeJS 环境和 nodeJS 下的 jshint。 \AppData\Roaming\npm\jshint -> C:\Users\Administrator\AppData\Roaming\npm\node_modules\jshint\bin\jshint C:\Users\Administrator>jshint -v jshint v2.6.3 现在,恭喜你,我们使用 Sublime 编辑 JavaScript 文件,就会有语法检查了!
following sitepoint's An introduction to Gulp.js, but I'm stuck on step four, when I try to run gulp jshint I get "Error: Cannot find module 'jshint/src/cli'" I've no idea what's causing this, which is why I'm You need to install jshint as well, that will sort out the issue. > npm install --save-dev jshint gulp-jshint
即便出了jshint这样的好利器,然,也得考虑下兼顾团队已有的Style。所以,这里配置得纠结下,微说Gulp之gulp-jshint。 = require('gulp-jshint'); gulp.task('jshint', function () { gulp.src('. /src/**/*.js') .pipe(cache('jshint')) .pipe(jshint()) .pipe(jshint.reporter(' /src/**/*.js', ['jshint']); }); gulp.task('default', ['jshint', 'watch']); 这样就能清晰的看到刚才发生修改文件的语法检测结果了 var gulp = require('gulp'), jshint = require('gulp-jshint'), uglify = require('gulp-uglify'),
--save-dev // var jshint = require('gulp-jshint'); var babel = require("gulp-babel"); var rename = require gulpfile.js */ // 引入 gulp var gulp = require('gulp'); // 引入组件 // 保证在当前项目目录下曾经运行过: // npm install gulp-jshint --save-dev var jshint = require('gulp-jshint'); var babel = require("gulp-babel"); var concat = require /public/')); }); // // 语法检查 // gulp.task('jshint', function() { // gulp.src('. /js/*.js') // .pipe(jshint()) // .pipe(jshint.reporter('default')); // }); // 监视文件的变化 gulp.task(
插件校验js代码) var jshint = require('gulp-jshint'); gulp.task('myTask',function(){ return gulp.src('main.js ') .pipe(jshint({undef: true})); }); 然后命令行使用:gulp myTask 即可运行此程序。 = require('gulp-jshint'), uglify = require('gulp-uglify'), imagemin = require('gulp-imagemin /static/**/*.js') .pipe(jshint('.jshintrc')) .pipe(jshint.reporter('default')) image.png shenmegui .. console.log都识别不了,不管了..忽略 不过为什么jshint出错了还会继续下面的操作呢?
JSHint - 一款Javascript代码分析工具 这个工具很常用,每次写完Javascript的代码,就可以通过这个工具来扫描下代码,如果有错误(Error)或者警告(Warning)提示, 同时JSHint提供对文本编辑器插件的各种支持,像我用的Vim就配置了JSHint,每次开发完,直接输入命令:JSHint,很好用,推荐。 1 /* jshint strict: true, undef:true, unused:true, latedef: true, newcap: true, noempty: true, forin: true, 2 freeze: true, node: true, curly:true, camelcase: true */ 3 "use strict"; JSHint官网:http: //jshint.com/ 目前根据自己的经验,只总结出以上三点。
, "grunt-contrib-htmlmin": "^2.4.0", "grunt-contrib-imagemin": "^2.0.1", "grunt-contrib-jshint {jpg,png}', dest: 'dist/' } }, //js语法检查 jshint: { grunt.registerTask('default', []); //全项目:上生产用 grunt.registerTask('payment', ['imagemin', 'jshint ']); //图片文件 grunt.registerTask('1', ['imagemin']); //脚本文件 grunt.registerTask('2', ['jshint grunt.registerTask('development', ['connect', 'watch']); //js脚本检查 grunt.registerTask('jscheck', ['jshint
在以前的项目中,我们选择 JSHint 和 JSCS 结合使用,WebStorm 等开发环境已经支持这些工具,使用起来很顺手。 然而,最近使用 React JSX 语法时,却遇到了问题:JSHint 不支持 JSX 语法。 虽然有 JSXHint 这样的 JSHint 衍生工具,但个人并不喜欢这样的实现方式:不是以插件的形式实现,而是重新重新包装了一个工具。 Nicholas C. 原来选择 JSHint 的时候,也对比过 ESLint,基于 ESLint 在速度上比 JSHint 要 慢一些 ,最终使用了 JSHint。 使用 ESLint ESLint 详尽使用参见 官方文档 ,下面罗列的是由 JSHint 迁移到 ESLint 的一些要点。
比如,grunt-contrib-jshint插件现在是0.11.0版,对应Grunt 0.4.5版和JSHint 2.6.0版。 万一Grunt和JSHint升级,而插件没有升级,就有可能出现兼容性问题。Make是直接调用JSHint,不存在这个问题。 比如,调用JSHint,就不用写 ~/node_modules/.bin/jshint ,只写 jshint 就行了。 SHELL变量指定构建环境使用BASH。 /lib -name '*.js') lint: $(js_files) jshint $? 然后,就可以用jshint检查这些文件。 使用时调用下面的命令。 $ make lint 五、模板编译 第二个任务是编译模板。
gulp-rename –save-dev 再安装一下npm install jslint 然后在gulpfile.js文件里面编写gulp任务代码 var gulp = require("gulp"), jshint = require("gulp-jshint"), uglify = require("gulp-uglify"), rename = require("gulp-rename"); gulp.task("scripts",function(){ return gulp.src("src/calendar.js") .pipe(jshint()) //检查代码 .pipe(jshint.reporter('default')) .pipe(rename({suffix:".min"})) //重命名 .pipe
json-lint:window.jsonlint css-lint:window.CSSLint html-lint:window.HTMLHint javascript-lint:window.JSHINT codemirror/addon/lint/javascript-lint" import "codemirror/addon/lint/lint.css" // @ts-ignore import jshint from 'jshint' // @ts-ignore window.JSHINT = jshint.JSHINT; interface JavascriptEditorProps { value
4、linter和linter-jshint 该插件是用jshint来检查代码,想必大家都听说过jshint代码检查工具,它有一个配置文件.jshintrc,这个文件告诉jshint执行的检查规则。 通过jshint能发现代码中存在的问题,可以及时避免bug的发生。 linter-jshint插件基于atom规则来使用jshint,该插件可以在项目根目录下新建一个.jshintrc来告诉检查规则,也可以不用创建此文件来进行代码检查。 注意:linter-jshint是依赖linter插件来使用的,也就是说必须先安装linter插件;因为linter是一个粗糙的检查,有很多针对专门项的代码检查,如linter-csslint、linter-php
但其实我们并不是直接用它进行代码检测——实际上它是一个包含了多种检测插件(sublimelinter-htmlhint,sublimelinter-csslint,sublimelinter-jshint 这是因为 sublimelinter -htmlhint,sublimelinter-csslint,sublimelinter-jshint 实际上分别调用的是 node.js 的 htmlhint, csslint 和 jshint。 3.5.4 安装 sublimeLinter-csslint 和 csslint,sublimeLinter-jshint 和 jshint 打开 Sublime Text3,按住 Ctrl +Shift -g jshint npm install -g csslint 之后重启编辑器,大功告成。
例如,有些插件可以用来执行JSHint、编译CoffeeScript,执行Mocha测试,甚至更新版本号。 ('build')); }); 在运行这段程序之前,你需要先安装gulp,gulp-jshint,gulp-uglify和gulp-concat。 让我们用前面的js任务来详细说明一下: var gulp = require('gulp'), jshint = require('gulp-jshint'), uglify = require 细心的读者可能会发现,程序中JSHint插件执行了2次,这是因为第一次执行JSHint只是给文件对象附加了jshint属性,并没有输出。 你可以自己读取jshint的属性或者传递给默认的JSHint的接收函数或者其他的接收函数,比如jshint-stylish.
module.exports = function(grunt) { grunt.initConfig({ jshint: { files: ['Gruntfile.js', globals: { jQuery: true } } }, watch: { files: ['<%= jshint.files %>'], tasks: ['jshint'] } }); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks ('grunt-contrib-watch'); grunt.registerTask('default', ['jshint']); }; 4.
gulpfile.js内容如下所示: gulp.task('default',function(){ return gulp .src("**/*.js") .pipe(jshint /build/')) }) 上面gulp配置完成的内容是: 1.将目录下所有的以.js结尾的文件 2.执行jshint代码检查 3.然后concat合并为一个文件, 4.再使用uglify minifyHtml = require('gulp-minify-html'); //项目中需要将.less文件重命名为.css var rename = require('gulp-rename'); //jshint 检查js静态语法检查 var jshint = require('gulp-jshint'); 3.gulp打包 因为项目中使用bower进行类库的管理,所以在项目打包的过程,需要从bower_components