我正在使用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-load-plugins加载gulp-jshint):
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'));
});
我的.jshintrc
中有"esversion": 6
这是运行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也忽略了VSCode中的@inject
,没问题。但是出于某种原因,gulp-jshint不会放过它。我已经删除并重新输入了该行,搜索并找到了许多不可打印字符的问题。我已经尝试将jshint ignore切换为// jshint ignore:line
语法。仍然没有。
我有什么遗失的吗?
答案 0 :(得分:0)
JSHint不支持装饰器(" @ whatever"),因此esversion: 6
不会影响此问题。
JSHint的政策是支持第2阶段的功能 标准化过程,对装饰者来说还不是这样。
https://github.com/jshint/jshint/issues/2310
不确定为什么你的"忽略"但指令失败了。也许尝试单行忽略指令?
@inject(MyService)// jshint ignore:line
编辑:忽略一行对我来说也不起作用。对不起,这个答案可能不会有帮助。 : - (