2016-04-05 14 views
7

Ho cercato di utilizzare il modulo di grugnito jshint per convalidare il mio codice, ma ho sempre il seguente errore:avviso grunt-contrib-jshint: il percorso deve essere una stringa;

Running "jshint" task 
[D] Task source: C:\Coursera\03. Intro Angular JS\conFusion\node_modules\grunt-contrib-jshint\tasks\jshint.js 

Running "jshint:all" (jshint) task 
[D] Task source: C:\Coursera\03. Intro Angular JS\conFusion\node_modules\grunt-contrib-jshint\tasks\jshint.js 
Verifying property jshint.all exists in config...OK 
Files: Gruntfile.js, app/scripts/app.js 
Options: force=false, reporterOutput=null, jshintrc=".jshintrc", reporter={} 
Warning: Path must be a string. Received { toString: [Function], reporter: [Function] } Use --force to continue. 

il problema è che, anche utilizzando il --verbose e debug, esso non mostra qualsiasi cosa su cui lavorare sull'errore, solo "il percorso deve essere una stringa", ho convalidato il file con JSLint (usando parentesi) e funziona abbastanza bene, anche il sito funziona bene.

quello che ho fatto finora.

  • Unistalled node.js e moduli di nodo 3 volte (provando qualcosa di diverso ogni volta).
  • ha provato a limitare il mio task grunt semplicemente per convalidare un file js molto semplice, e inoltre non funziona, significa che questo non è correlato al codice o al mio gruntfile.js.
+0

Gulp sembra essere un'opzione migliore per costruire la tua soluzione, è più facile e veloce di Grunt; – minimalistix

+2

Quale versione di nodo stai utilizzando? Ho appena aggiornato a 6 e sto ricevendo questo errore. – keepitreal

risposta

18

Ho risolto il problema aggiornando grunt-contrib-jshint da "0.10.0" a "0.12.0".

+2

Questo problema con il nodo v6.2.2 era 5.7.0 –

11

Stavo ancora ricevendo l'errore dopo l'aggiornamento di node a v6.4.0.

Cosa mi ha aiutato è stato this comment on github (da Jeff Peck):

I have found the issue to be when the reporterOutput option is set to null. If you change that option to refer to an empty string, jshint will work as expected:

options: { 
     jshintrc: '<%= baseDir %>/.jshintrc', 
     reporterOutput: "", 
     ... 

Fare che ha permesso grunt jshint per completare.

EDIT:

Beh, ho fatto hanno aggiornato node, ma non grunt-contrib-jshint, come da Zeid Selimovic's answer. Funziona ed è migliore della soluzione precedente.

+1

Questo mi ha aiutato. Ho aggiunto 'reporterOutput:" ",' e il mio task grunt ha funzionato. – breezy

8

Ho riscontrato il problema subito dopo l'aggiornamento del nodo (v6.9.2). E 'ottenuto risolto dopo l'aggiornamento grugnito-contrib-jshint alla versione più recente ("1.1.0") da parte seguenti fasi:

NPM disinstallazione grugnito-contrib-jshint --save-dev

NPM installare grugnito-contrib -jshint --save-dev

+0

grazie. Ha funzionato per me! – adev

+0

Grazie, ha funzionato per me –

Problemi correlati