2016-05-26 8 views
0

Ich benutze gulp-jshint und empfange diese Nachricht mit einer Javascript-Datei. Die Datei ist eine einfache Serviceklasse in meiner Aurelia App. Hier ist der Code:Unerwartete Token ILLEGAL mit @inject

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; 
    } 

} 

Hier ist meine Aufgabe schluck (schlucke-jshint wird immer geladen mit großen Schluck-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')); 
}); 

Ich habe "esversion": 6 in meinem .jshintrc

Dies ist das Ergebnis von gulp vet läuft (in beiden Powershell und 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> 

Die Aurelia App funktioniert gut. JSHint ignoriert die @inject innerhalb von VSCode auch, kein Problem dort. Aus irgendeinem Grund wird gulp-jshint es nicht loslassen. Ich habe die Zeile gelöscht und neu eingegeben, nachdem ich viele Probleme mit nicht druckbaren Zeichen gesucht und gefunden habe. Ich habe versucht, die jshint ignore zu // jshint ignore:line Syntax zu wechseln. Immer noch nichts.

Gibt es etwas, das mir fehlt?

Antwort

0

JSHint unterstützt Dekorierer ("@whatever") noch nicht, so dass esversion: 6 dieses Problem nicht beeinflusst.

Die Politik der JSHint ist Features zu unterstützen, die Stufe 2 der Standardisierungsprozess sind, die für die Dekorateure nicht der Fall noch ist.

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

nicht sicher, warum Ihre "ignorieren" Richtlinie allerdings versagt. Vielleicht versuchen Sie die Single-Line-Ignorier-Anweisung? @inject(MyService)// jshint ignore:line

Edit: Ignorieren einer einzigen Zeile funktioniert auch nicht für mich. Entschuldigung, diese Antwort wird wahrscheinlich nicht hilfreich sein. :-(

Verwandte Themen