Erreur Gulp: impossible de trouver le module 'jshint / src / cli'

117

J'ai donc une nouvelle installation d'El Capitan et je donne une autre chance à ces coureurs de tâches.

Je suis une introduction à Gulp.js de sitepoint , mais je suis coincé à l'étape quatre, quand j'essaye de courir, gulp jshintje reçois " Error: Cannot find module 'jshint/src/cli'"

Je n'ai aucune idée de ce qui cause cela, c'est pourquoi je demande ici. Vous trouverez ci-dessous quelques captures d'écran pour vous aider à résoudre le problème.

Erreur de terminal lors de l'exécution de gulp jshint

Structure de dossier pour le projet gulp

Comme toujours, je suis éternellement reconnaissant pour tout conseil.

lateraus
la source
1
Jshint est-il installé?
MinusFour
Oui, ça l'est. Je l'ai même réinstallé pour être sûr et j'obtiens toujours la même erreur.
lateraus
6
Comment l'avez-vous installé? Doit être installé comme ceci: à npm install jshint gulp-jshint --save-devpartir de la racine de votre application de nœud.
MinusFour
1
@lateralaus avez-vous fait aussi npm install jshint?
Flobin
1
J'ai utilisé npm install gulp-jshint --save-devest-ce différent de npm install jshint?
lateraus

Réponses:

327

Vous devez également installer jshint , cela résoudra le problème.

> npm install --save-dev jshint gulp-jshint
fmatar
la source
1
C'est tout ! Merci beaucoup!
Psi du
N'est-ce pas ce que cela fait? npm install gulp-jshint --save-dev
lateraus
2
Je viens de rencontrer le même problème. Je pense que les développeurs ont modifié la structure de gulp-jshint dans la dernière version qui a causé ce problème (si vous voyez github.com/spalger/gulp-jshint/issues/131 ). J'ai remarqué un avertissement de dépendance de pair lors de l'installation gulp-jshint.
CSharp
8
@ user3042437 Vive! Cela a fait le travail: D Il s'avère donc que je dois utiliser npm install --save-dev jshint gulp-jshintau lieu de npm install gulp-jshint --save-devcomme indiqué dans le didacticiel.
lateraus
@lateralaus Si vous êtes toujours là - vous devriez accepter cette réponse :) coche à gauche
Tim Malone
28

Il s'avère que je dois utiliser npm install --save-dev jshint gulp-jshintau lieu de npm install gulp-jshint --save-devcomme indiqué dans le didacticiel. Une discussion à ce sujet a été trouvée sur https://github.com/spalger/gulp-jshint/issues/131 avec un grand merci à @ user3042437 pour avoir fourni le lien.

lateraus
la source
J'utilisais le même tutoriel et je me suis retrouvé coincé au même endroit. Merci d'avoir publié la réponse! Fonctionne bien maintenant.
Orlando Morales-Cochran
0

Si vous obtenez toujours l'erreur après avoir mis la syntaxe correcte ci-dessus, (npm install --save-dev jshint gulp-jshint), qui fonctionne.

Avant de réexécuter l'installation, accédez à votre fichier package.json et supprimez les lignes pour jshint et gulp-jshint avant de lancer l'installation, assurez-vous de modifier package.json pour supprimer les lignes qui appellent jshint et gulp-jshint, sinon, l'erreur persistera.

Ben Erwin
la source
-1

Parfois, l'ordre de la formulation importe. J'ai découvert que cela npm install --save-dev jshint gulp-jshintne fonctionne pas mais que cela npm install jshint gulp-jshint --savefonctionne

Cengkuru Michael
la source
-1

Ici, vous ciblez jshint, que vous n'avez probablement pas installé. (Vous faites cela en gulp.task('jshint', function() {.)

Essaye ça:

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

Cela correspond à la façon dont vous le faites require.

var jshint = require('gulp-jshint');
onyxglock
la source
-2

Il existe une solution temporaire pour contourner cette erreur. Même cette solution temporaire fonctionnera également correctement, si vous ne souhaitez pas utiliser le fichier jshint.js dans votre application n'importe où.

  1. Accédez à votre fichier gulpfile.js.
  2. Commentez le code de la ligne numéro 4.

    var jshint = require('gulp-jshint');
  3. Maintenant, exécutez la commande gulp dans votre terminal. Votre serveur sera opérationnel.

Pushp Singh
la source
Cette réponse ne résout pas le problème racine, qui, je pense, devrait être au centre d'une réponse sur SO.
simeg