-1

我正在使用 gulp-jshint 并使用 javascript 文件接收此消息。该文件是我的 Aurelia 应用程序中的一个简单服务类。这是代码:

import {inject} from 'aurelia-framework';
import {MyService} from './app/service/MyService';

/* jshint ignore:start */
@inject(MyService)
/* jshint ignore:end */
export class App {

    constructor(MyService) {
        this.message = MyService.message;
    }

}

这是我的 gulp 任务(gulp-jshint 正在使用 gulp-load-plugins 加载):

gulp.task('vet', function() {
    return gulp.src(config.alljs)
        .pipe($.if(args.verbose, $.print()))
        .pipe($.jscs())
        .pipe($.jshint())
        .pipe($.jscsStylish.combineWithHintResults())
        .pipe($.jshint.reporter('jshint-stylish', {verbose: true}))
        .pipe($.jshint.reporter('fail'));
});

"esversion": 6在我的 .jshintrc

这是运行的结果gulp vet(在Powershell和cmd中)

PS C:\_files\programming\MyProj> gulp vet
[11:42:21] Using gulpfile C:\_files\programming\MyProj\gulpfile.js
[11:42:21] Starting 'vet'...

web\app.js
  line 5  col 1  Unexpected token ILLEGAL  (W parseError)

  ‼  1 warning

[11:42:23] 'vet' errored after 1.79 s
[11:42:23] Error in plugin 'gulp-jshint'
Message:
    JSHint failed for: web\app.js
PS C:\_files\programming\MyProj>

Aurelia 应用程序运行良好。JSHint 也忽略了@injectVSCode 内部,没有问题。但是,出于某种原因,gulp-jshint 不会放过它。在搜索并发现很多与不可打印字符有关的问题后,我已删除并重新输入了该行。我尝试将 jshint 忽略切换为// jshint ignore:line语法。依然没有。

有什么我想念的吗?

4

1 回答 1

0

JSHint 还不支持装饰器(“@whatever”),所以esversion: 6不会影响这个问题。

JSHint 的策略是支持标准化过程的第 2 阶段的特性,而装饰器还不是这种情况。

https://github.com/jshint/jshint/issues/2310

不过,不确定为什么您的“忽略”指令会失败。也许尝试单行忽略指令? @inject(MyService)// jshint ignore:line

编辑:忽略一行对我也不起作用。对不起,这个答案可能不会有帮助。:-(

于 2016-08-02T21:39:49.890 回答