2014-10-01 3 views
7

ich einen bestimmten JSHint/Grunt-Setup habe, in denen Ich mag würde folgendes zu erreichen:Wie kann ich zwingen JSHint in Grunzen läuft immer den --verbose Flag verwende

  1. Laden aus einer einzigen Datei .jshintrc meinem IDE-Linter, damit meine Einstellungen
  2. der Lage sein, holen, um einzelne Optionen aus dem .jshintrc in anderen Grunzen Aufgaben
  3. Have JSHint immer laufen im ausführlichen Modus außer Kraft setzen, so dass ich immer die Warnung Zahlen sehen können, ohne dass zu renne alle mit --verbose

Das folgende erlaubt mir, von der .jshintrc zu laden und immer in verbose zu laufen, aber erlaubt keine Überschreibungen der Option. Die docs erwähnen, dass dies der Fall sein sollte, aber nicht sagen nichts über die ausführliche Option, die funktioniert:

jshint: { 
    options:{ 
     jshintrc: '.jshintrc', 
     verbose: true, 
    }, 
    source: { 
     options: { 
      ignores: ['src/**/*.test.js'], 
     }, 
     files:{ 
      src:['src/**/*.js'] 
     } 
    }, 
    tests: { 
     options: { 
      unused: false 
     }, 
     files: { 
      src: ['src/**/*.test.js'] 
     } 
    } 
} 

um die Überschreibung Einschränkungen zu erhalten, ist es ziemlich einfach, nur grunzen injizieren haben den Inhalt die .jshintrc-Datei in die config, aber aus welchem ​​Grund auch immer bewirkt dies, dass der linter jetzt "line 0 col 0 Bad option: 'verbose'. (E001)" errors (das wird korrekt ausgeführt, wenn ich die options.verbose = true; Linie, aber ohne die ausführliche Flag):

jshint: { 
    options:(function() { 
     var options = grunt.file.readJSON('.jshintrc'); 
     options.verbose = true; 
     return options; 
    }()), 
    source: { 
     options: { 
      ignores: ['src/**/*.test.js'], 
     }, 
     files:{ 
      src:['src/**/*.js'] 
     } 
    }, 
    tests: { 
     options: (function() { 
      var options = grunt.file.readJSON('.jshintrc'); 
      options.unused = false; 
      return options; 
     }()), 
     files: { 
      src: ['src/**/*.test.js'] 
     } 
    } 
} 

meine drei Kriterien So, da ist es eine Möglichkeit, Grunzen konfigurieren auf diese Weise laufen?

+2

Für alle, die eine Antwort auf diese Frage suchen, habe ich sie als Bug unter https://github.com/gruntjs/grunt-contrib-jshint/issues/178 abgelegt - Details können sein dort gefunden, und ich werde diese Frage aktualisieren, wenn sich die Situation ändert. – MaxPRafferty

+0

jedes Update dazu, insbesondere, wie man den ausführlichen Modus bekommt? Überprüft den Link, aber es wurde geschlossen. – arcseldon

+0

Die grunt contrib jshint scheinen zu glauben, dass sie nicht für die Parameter verantwortlich sind, die sie zu grunzen senden und nicht adressieren (daher die geschlossene Frage). Ich bin seitdem zu eslint umgezogen, das alle Optionen hat, die ich verlangte: https://www.npmjs.com/package/grunt-eslint – MaxPRafferty

Antwort

0

Wie jshint auf bestimmte Datei mit Grunzen-contrib-jshint auszuführen:

./node_modules/grunt-contrib-jshint/node_modules/jshint/bin/jshint --verbose app/sources/modules/dashboard/views/dashboard-performance/dashboard-performance-ctrl.js 

es keine Möglichkeit gibt, den ausführlichen Modus für Grunzen jshint in Optionen zu definieren. Und es wird nicht bis zu grunzen Updates gelöst werden. (Danke an MaxPRafferty)

+0

Danke für die Antwort Oleksander, aber Grunt erlaubt tatsächlich das 'wortreiche' Kennzeichen, um hereingelassen zu werden Optionen. Das ist der Zweck der Optionen-Eigenschaft, Befehlszeilenoptionen über Config zu übergeben, weshalb mein erstes Beispiel funktioniert. – MaxPRafferty

+0

Das Problem liegt bei grunt-contrib-jshint, die ignorieren, dass die Option -Eigenschaft für diesen Zweck reserviert ist und es verwenden, um das Tool in der Knotenumgebung zu konfigurieren, aber Eigenschaften nicht ignorieren, die sie nicht verwenden. Dies führt dazu, dass der Linter Fehler in gültigen Befehlszeilen-Flags auslöst, daher die Option 'Schlecht': 'Ausführlich'. (E001) ', trotz der Tatsache, dass das Verbose-Flag korrekt an den Befehl jsHint angehängt wird, wenn es ausgeführt wird (ironischerweise wird der Fehler" falsche Option "im ausführlichen Modus angezeigt!) – MaxPRafferty

Verwandte Themen