【问题标题】:Have Browserify transform Hintify continue on error让 Browserify 转换 Hintify 继续出错
【发布时间】:2015-10-27 01:39:04
【问题描述】:

我将 Gulp 与 Browserify 和 Hintify 一起使用。捕获错误的standardway 似乎是这样的:

browserify({
    entries: 'app.js',
    transform: [
        // Some other transforms
        plugins.hintify
    ]
    // A bunch of other settings
}).bundle()
    // Error handling
    .on('error', function(error) {
        util.beep(); // Util is gulp-util
        util.log(error);
        this.emit('end');
    })
    .pipe(...)

这很好用,每次我违反我的jshint 我都会得到这样的结果:

Users/me/Sites/project/client/scripts/app.js: line 11, col 23, Missing semicolon.

然后构建停止。

但是,即使我忘记了分号,我也希望构建能够继续。现在,任何jshint 错误都会阻止构建处理。我喜欢检查我的代码是否符合标准,但如果我在函数中有未使用的参数,它不应该阻止所有内容的构建。

帮助?

【问题讨论】:

  • 你见过this post吗?也许它会做你想要的。我看到jshint 有一个maxerr 属性

标签: gulp browserify jshint


【解决方案1】:

当前设置适用于我(配置 sam 为 here):

var jshint = require('gulp-jshint');
var notify = require('gulp-notify');
var stylish = require('jshint-stylish')
...
.pipe(jshint('.jshintrc'))
.pipe(jshint.reporter('jshint-stylish'))
//.pipe(jshint.reporter('fail')) // <- omit a fail reporter 
...

或

...
.pipe(jshint('.jshintrc'))
.pipe(jshint.reporter('jshint-stylish'))
.pipe(jshint.reporter('fail'))
.on('error', notify.onError({ message: 'JS hint fail'})) // <- pipe fail to notification
...

这给了我输出:

...
src\m\typings.js
  line 0   col 0   ES5 option is now set per default
  line 3   col 18  ['SUCCESS'] is better written in dot notation.
  line 4   col 18  ['FAILURE'] is better written in dot notation.
  line 5   col 18  ['UNSTABLE'] is better written in dot notation.
  line 6   col 18  ['NOT_BUILT'] is better written in dot notation.
  line 10  col 26  ['info'] is better written in dot notation.
  line 11  col 26  ['success'] is better written in dot notation.
  line 12  col 26  ['mark'] is better written in dot notation.
  line 13  col 26  ['warn'] is better written in dot notation.
  line 14  col 26  ['error'] is better written in dot notation.
  line 15  col 26  ['debug'] is better written in dot notation.
  line 16  col 26  ['none'] is better written in dot notation.
  line 18  col 1   Unnecessary semicolon.

  ‼  13 warnings

[10:08:32] src\m\typings.js

src\helper\scaffolding.helper.js
  line 0    col 0    ES5 option is now set per default
  line 65   col 61   Regular parameters cannot come after default parameters.
  line 82   col 79   Expected an assignment or function call and instead saw an expression.
  line 84   col 77   Regular parameters cannot come after default parameters.
  line 90   col 39   Expected an assignment or function call and instead saw an expression.
  line 91   col 21   Missing 'new' prefix when invoking a constructor.
  line 91   col 60   Expected an assignment or function call and instead saw an expression.
  line 105  col 46   Expected an assignment or function call and instead saw an expression.
  line 106  col 29   Missing 'new' prefix when invoking a constructor.
  line 106  col 103  Expected an assignment or function call and instead saw an expression.
  line 3    col 12   'require' is not defined.
  line 4    col 14   'require' is not defined.
  line 5    col 11   'require' is not defined.
  line 6    col 19   'require' is not defined.
  line 7    col 10   'require' is not defined.
  line 8    col 13   'require' is not defined.
  line 9    col 13   'require' is not defined.
  line 33   col 17   'none' is not defined.
  line 42   col 13   'color' is not defined.
  line 45   col 13   'color' is not defined.
  line 48   col 13   'color' is not defined.
  line 51   col 13   'color' is not defined.
  line 54   col 13   'color' is not defined.
  line 57   col 13   'color' is not defined.
  line 60   col 13   'color' is not defined.
  line 63   col 12   'color' is not defined.
  line 85   col 25   'process' is not defined.

  ×  2 errors
  ‼  25 warnings

[10:08:32] src\helper\scaffolding.helper.js

src\helper\scaffolding.server.js
  line 0   col 0    ES5 option is now set per default
  line 22  col 44   Expected an assignment or function call and instead saw an expression.
  line 23  col 25   Missing 'new' prefix when invoking a constructor.
  line 23  col 75   Expected an assignment or function call and instead saw an expression.
  line 25  col 43   Expected an assignment or function call and instead saw an expression.
  line 26  col 25   Missing 'new' prefix when invoking a constructor.
  line 26  col 117  Expected an assignment or function call and instead saw an expression.
  line 38  col 40   Expected an assignment or function call and instead saw an expression.
  line 39  col 21   Missing 'new' prefix when invoking a constructor.
  line 39  col 50   Expected an assignment or function call and instead saw an expression.
  line 74  col 43   Expected an assignment or function call and instead saw an expression.
  line 75  col 25   Missing 'new' prefix when invoking a constructor.
  line 75  col 96   Expected an assignment or function call and instead saw an expression.
  line 4   col 12   'require' is not defined.
  line 5   col 13   'require' is not defined.
  line 7   col 13   'require' is not defined.

  ‼  16 warnings

[10:08:32] src\helper\scaffolding.server.js

src\server\publish.js
  line 0   col 0   ES5 option is now set per default
  line 17  col 17  Missing 'new' prefix when invoking a constructor.
  line 17  col 54  Expected an assignment or function call and instead saw an expression.
  line 29  col 21  Missing 'new' prefix when invoking a constructor.
  line 29  col 44  Expected an assignment or function call and instead saw an expression.
  line 3   col 12  'require' is not defined.
  line 4   col 13  'require' is not defined.
  line 7   col 14  'require' is not defined.
  line 9   col 12  'require' is not defined.
  line 10  col 10  'require' is not defined.
  line 11  col 14  'require' is not defined.
  line 12  col 13  'require' is not defined.

  ‼  12 warnings
[10:08:32] gulp-notify: [Error running Gulp] JS hint fail
[10:08:32] src\server\publish.js
[10:08:32] Finished 'build' after 1.61 s

使用 jshint ^1.12.0

【讨论】:

  • 是的,我曾经使用过类似的设置,我可以让工作没有问题。但是一旦我尝试使用 Browserify 转换 - 提示 - 我遇到了上面的问题。
  • 我不熟悉browserify,但也许this post 描述了类似的设置?
  • 他们也在使用gulp-jshint 而不是hintify。这与您描述的设置以及我到目前为止使用的设置基本相同。但是,我想知道这是否可能仅使用hintify...
  • 不幸的是,这是我所知道的。抱歉,我帮不上什么忙
猜你喜欢
  • 2014-05-25
  • 2016-11-30
  • 2012-12-21
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多