2014-10-01 16 views
7

Mam szczególną konfigurację JSHint/Grunt w którym chciałbym wykonać następujące czynności:Jak mogę zmusić JSHint uruchomiony w grunt, aby zawsze używać --verbose flagę

  1. Obciążenie z pojedynczym pliku .jshintrc aby moja linijka IDE mogła przechwytywać moje ustawienia
  2. Możliwość nadpisania pojedynczych opcji od .jshintrc w innych zadaniach pomruczania
  3. Czy JSHint zawsze działa w trybie szczegółowym, dzięki czemu zawsze mogę zobaczyć numery ostrzeżeń, bez potrzeby uruchom wszystkie pomruki za pomocą --verbose

Poniższe pozwala mi ładować z .jshintrc i zawsze uruchomić w verbose, ale nie pozwala na nadpisywanie opcji. Docs wspomnieć, że powinno to być przypadek, ale nie mówią nic na temat opcji gadatliwym, który działa:

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

Aby obejść ograniczenia zastępują, to dość łatwo po prostu chrząknięcie wstrzyknąć zawartość plik .jshintrc do konfiguracji, ale z dowolnego powodu powoduje to, że wykładzina rzuca teraz "line 0 col 0 Bad option:" verbose ". (E001)" błędy (działa poprawnie, jeśli usunę opcje options.verbose = true; linia, ale bez gadatliwym 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'] 
     } 
    } 
} 

więc, biorąc pod uwagę moje trzy kryteria, czy istnieje sposób, aby skonfigurować chrząknięcie uruchomić w ten sposób?

+2

Dla każdego, kto szuka odpowiedzi na to, zapisałem go jako błąd na https://github.com/gruntjs/grunt-contrib-jshint/issues/178 - szczegóły mogą być tam znaleźć, i zaktualizuję to pytanie, jeśli sytuacja się zmieni. – MaxPRafferty

+0

wszelkie aktualizacje na ten temat, w szczególności jak uzyskać tryb gadatliwy? Sprawdził link, ale został zamknięty. – arcseldon

+0

Gruby contrib jshint wydaje się wierzyć, że nie są odpowiedzialni za parametry, które wysyłają do chrząkania i nie będą adresować (stąd zamknięte pytanie.). Od tego czasu przeniosłem się do eslint, który ma wszystkie wymagane opcje: https://www.npmjs.com/package/grunt-eslint – MaxPRafferty

Odpowiedz

0

Jak uruchomić jshint na konkretnego pliku za pomocą grunt-contrib-jshint:

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

nie ma sposobu, aby określić tryb opisowy dla grunt jshint w opcji. I nie zostanie rozwiązany, dopóki nie zostaną uaktualnione. (dzięki MaxPRafferty)

+0

Dziękuję za odpowiedź Oleksandra, ale Grunt w rzeczywistości pozwala na przekazanie flagi "verbose" opcje. Taki jest cel właściwości options, aby przekazywać opcje wiersza poleceń przez config, dlatego mój pierwszy przykład działa. – MaxPRafferty

+0

Problem leży po stronie grunt-contrib-jshint, który ignoruje, że właściwość options jest zarezerwowana do tego celu i używa go do skonfigurowania narzędzia w środowisku węzła, ale nie ignoruj ​​właściwości, których same nie używają. Powoduje to, że linter rzuca błędy na prawidłowe flagi linii poleceń, stąd "Zła opcja:" verbose ". (E001) ', mimo że flaga verbose jest poprawnie dołączona do komendy jsHint podczas uruchamiania (ironicznie, błąd" zła opcja "jest wyświetlany w trybie szczegółowym!) – MaxPRafferty