2014-10-01 13 views
7

ho una configurazione particolare JSHint/Grunt in cui vorrei realizzare il seguente:Come posso forzare JSHint esecuzione in grugnito di usare sempre il flag --verbose

  1. Carica da un unico file .jshintrc per consentire il mio IDE linter per prendere le mie impostazioni
  2. essere in grado di sostituire le opzioni singoli dal .jshintrc in altri compiti grugnito
  3. Hanno JSHint girano sempre in modalità dettagliata in modo da poter sempre vedere i numeri di avvertimento, senza la necessità di eseguire tutto di grunt con --verbose

Quanto segue mi consente di caricare da .jshintrc e di eseguire sempre in verbose, ma non consente l'override delle opzioni. La documentazione ricordare che questo dovrebbe essere il caso, ma non dire nulla circa l'opzione verbose, che funziona:

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'] 
     } 
    } 
} 

per aggirare le limitazioni di override, è abbastanza facile da avere solo grugnito iniettare il contenuto della il file .jshintrc nel config, ma per qualsiasi motivo questo fa sì che il linter ora lanci "line 0 col 0 Bad option: 'verbose'. (E001)" errori (questo funziona correttamente se rimuovo options.verbose = true; la linea, ma senza il flag verbose):

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'] 
     } 
    } 
} 

Quindi, date le mie tre criteri, c'è un modo per configurare grugnito per l'esecuzione in questo modo?

+2

Per chi cerca una risposta a questo, mi hanno presentato come un bug a https://github.com/gruntjs/grunt-contrib-jshint/issues/178 - dettagli possono essere trovato lì, e aggiornerò questa domanda se la situazione cambia. – MaxPRafferty

+0

qualsiasi aggiornamento su questo, in particolare come ottenere la modalità dettagliata? Controllato il link ma era chiuso. – arcseldon

+0

I grunt contrib jshint sembrano credere che non siano responsabili per i parametri che stanno inviando a grugnire e che non indirizzeranno (quindi la domanda chiusa). Da allora mi sono spostato su eslint che ha tutte le opzioni che ho richiesto: https://www.npmjs.com/package/grunt-eslint – MaxPRafferty

risposta

0

come eseguire jshint sul file specifico utilizzando grugnito-contrib-jshint:

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

non v'è alcun modo per definire modalità dettagliata per grugnito jshint in opzioni. E non sarà risolto fino all'aggiornamento dei grunt. (grazie a MaxPRafferty)

+0

Grazie per la risposta Oleksander, ma Grunt in realtà consente il passaggio della bandiera "verbose" opzioni. Questo è lo scopo della proprietà options, per passare le opzioni della riga di comando tramite config, che è il motivo per cui il mio primo esempio funziona. – MaxPRafferty

+0

Il problema si trova con grunt-contrib-jshint, che ignora che la proprietà options è riservata a questo scopo e la usa per configurare lo strumento nell'ambiente del nodo, ma non ignora le proprietà che non stanno utilizzando. Questo fa sì che il linter lanci errori su flag validi della riga di comando, da qui l'opzione 'Bad: 'verbose'. (E001) ', nonostante il fatto che il flag verbose sia correttamente aggiunto al comando jsHint quando viene eseguito (ironicamente, l'errore" opzione errata "viene visualizzato in modalità dettagliata!) – MaxPRafferty

Problemi correlati