Неожиданный токен НЕЗАКОННЫЙ с @inject

Я использую 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 игнорирует @inject в VSCode также нет проблем. Однако по какой-то причине gulp-jshint не отпускает его. Я удалил и перепечатал строку после поиска и нахождения множества проблем с непечатными символами. Я пытался переключить Jshint игнорировать на // jshint ignore:line синтаксис. Еще ничего.

Я что-то упускаю?

1 ответ

JSHint пока не поддерживает декораторы ("@whwhat"), поэтому esversion: 6 не повлияет на эту проблему.

Политика JSHint заключается в поддержке функций, являющихся этапом 2 процесса стандартизации, что еще не относится к декораторам.

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

Не уверен, почему ваша директива "ignore" не работает. Может быть, попробуйте однострочное игнорирование директивы?@inject(MyService)// jshint ignore:line

Редактировать: игнорирование одной строки не работает для меня тоже. Извините, этот ответ, вероятно, не поможет.:-(

Другие вопросы по тегам