Неожиданный токен НЕЗАКОННЫЙ с @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
Редактировать: игнорирование одной строки не работает для меня тоже. Извините, этот ответ, вероятно, не поможет.:-(