Błąd Gulp: nie można znaleźć modułu „jshint / src / cli”

117

Mam więc świeżą instalację El Capitan i daję tym biegaczom zadań jeszcze raz.

Obserwuję SitePoint za Wprowadzenie do Gulp.js , ale ja utknęłam na etapie czwartym, kiedy próbuję uruchomić gulp jshintotrzymuję „ Error: Cannot find module 'jshint/src/cli'

Nie mam pojęcia, co to powoduje, dlatego pytam tutaj. Poniżej znajduje się kilka zrzutów ekranu, które pomogą rozwiązać problem.

Błąd terminala podczas uruchamiania gulp jshint

Structer folderów dla projektu gulp

Jak zawsze jestem wdzięczny za wszelkie rady.

lateralaus
źródło
1
Czy jshint jest zainstalowany?
MinusFour
Tak to jest. Nawet ponownie zainstalowałem go, aby mieć pewność, i nadal otrzymuję ten sam błąd.
lateralaus
6
Jak to zainstalowałeś? Musi być zainstalowany w następujący sposób: npm install jshint gulp-jshint --save-devz katalogu głównego aplikacji węzła.
MinusFour
1
@lateralaus, czy ty też to zrobiłeś npm install jshint?
Flobin
1
Czy npm install gulp-jshint --save-devto się różni od npm install jshint?
lateralaus

Odpowiedzi:

327

Musisz również zainstalować jshint , aby rozwiązać problem.

> npm install --save-dev jshint gulp-jshint
fmatar
źródło
1
Otóż ​​to ! Wielkie dzięki!
Psi
Czy to nie jest to, co to robi? npm install gulp-jshint --save-dev
lateralaus
2
Właśnie napotkałem ten sam problem. Myślę, że programiści dokonali zmiany w strukturze gulp-jshint w najnowszej wersji, która spowodowała ten problem (jeśli widzisz github.com/spalger/gulp-jshint/issues/131 ). Podczas instalacji zauważyłem ostrzeżenie o zależnościach równorzędnych gulp-jshint.
CSharp
8
@ user3042437 Pozdrawiam! To zadziałało: D Okazuje się, że npm install --save-dev jshint gulp-jshintzamiast tego, npm install gulp-jshint --save-devjak podano w samouczku, muszę użyć .
lateralaus
@lateralaus Jeśli nadal jesteś w pobliżu - powinieneś zaakceptować tę odpowiedź :) znacznik wyboru po lewej
Tim Malone
28

Okazuje się, że muszę użyć npm install --save-dev jshint gulp-jshintzamiast, npm install gulp-jshint --save-devjak podano w samouczku. Dyskusja na ten temat została znaleziona na https://github.com/spalger/gulp-jshint/issues/131 z ogromnymi podziękowaniami dla @ user3042437 za udostępnienie linku.

lateralaus
źródło
Używałem tego samego samouczka i utknąłem w tym samym miejscu. Dzięki za wysłanie odpowiedzi! Teraz działa dobrze.
Orlando Morales-Cochran
0

Jeśli nadal pojawia się błąd po wprowadzeniu powyższej poprawnej składni (npm install --save-dev jshint gulp-jshint), to działa.

Przed ponownym uruchomieniem instalacji przejdź do pliku package.json i usuń linie dla jshint i gulp-jshint przed uruchomieniem instalacji, upewnij się, że zmodyfikowałeś plik package.json, aby usunąć wiersze, które wywołują jshint i gulp-jshint, w przeciwnym razie błąd będzie się powtarzał.

Ben Erwin
źródło
-1

Czasami kolejność fraz ma znaczenie. Dowiedziałem się, że to npm install --save-dev jshint gulp-jshintnie działa, ale to npm install jshint gulp-jshint --savedziała

Cengkuru Michael
źródło
-1

Tutaj celujesz jshint, czego prawdopodobnie nie zainstalowałeś. (Robisz to w gulp.task('jshint', function() {.)

Spróbuj tego:

gulp.task('gulp-jshint', function() {

To pasuje do sposobu, w jaki to robisz require.

var jshint = require('gulp-jshint');
onyxglock
źródło
-2

Istnieje tymczasowe rozwiązanie umożliwiające obejście tego błędu. Nawet to tymczasowe rozwiązanie również zadziała poprawnie, jeśli nie chcesz nigdzie używać pliku jshint.js w swojej aplikacji.

  1. Przejdź do pliku gulpfile.js.
  2. Skomentuj kod w linii numer 4.

    var jshint = require('gulp-jshint');
  3. Teraz uruchom polecenie gulp w swoim terminalu. Twój serwer będzie działał.

Pushp Singh
źródło
Ta odpowiedź nie rozwiązuje głównego problemu, który moim zdaniem powinien być przedmiotem odpowiedzi na SO.
simeg