119

So I've got a fresh install of El Capitan and I'm giving these task runners another go.

I'm following sitepoint's An introduction to Gulp.js, but I'm stuck on step four, when I try to run gulp jshint I get "Error: Cannot find module 'jshint/src/cli'"

I've no idea what's causing this, which is why I'm asking here. Below are a couple of screen grabs to help with the issue.

Terminal error when running gulp jshint

Folder structer for gulp project

As always, I'm eternally grateful for any advice.

lateralaus
  • 1,523
  • 3
  • 11
  • 11

6 Answers6

330

You need to install jshint as well, that will sort out the issue.

> npm install --save-dev jshint gulp-jshint
marcospereira
  • 12,045
  • 3
  • 46
  • 52
fmatar
  • 3,490
  • 1
  • 15
  • 11
  • 2
    I just ran into the same problem. I think the developers made a change to the structure of gulp-jshint in the latest version which has caused this problem (if you see https://github.com/spalger/gulp-jshint/issues/131). I noticed a peer dependency warning when I installed `gulp-jshint`. – CSharp Dec 06 '15 at 20:44
  • when typing npm install --save-dev jshint gulp-jshint it works fine with me – Ahmed Mahmoud Jun 04 '18 at 15:41
27

It turns out I need to use npm install --save-dev jshint gulp-jshint instead of npm install gulp-jshint --save-dev as the tutorial stated. Discussion around this was found at https://github.com/spalger/gulp-jshint/issues/131 with massive thanks to @user3042437 for suppling the link.

Pan Long
  • 1,024
  • 1
  • 9
  • 16
lateralaus
  • 1,523
  • 3
  • 11
  • 11
0

If you still get the error after you put in the correct syntax above, (npm install --save-dev jshint gulp-jshint), which works.

Before you run the install again, go into your package.json file and remove the lines for jshint and gulp-jshint before you run the install, make sure you edit you package.json to remove the lines that call jshint and gulp-jshint, otherwise, the error will persist.

Ben Erwin
  • 9
  • 2
-1

Sometimes the order of the phrasing does matter. I found out that this npm install --save-dev jshint gulp-jshint does not work but this npm install jshint gulp-jshint --save works

Cengkuru Michael
  • 4,590
  • 1
  • 33
  • 33
-1

Here you target jshint, which you probably didn't install. (You do this in gulp.task('jshint', function() {.)

Try this:

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

This matches the way you required it.

var jshint = require('gulp-jshint');
Arya McCarthy
  • 8,554
  • 4
  • 34
  • 56
-2

There is a temporary solution for bypassing this error. Even this temporary solution will also work properly, if in case you don't want to use jshint.js file in you application anywhere.

  1. Go to your gulpfile.js file.
  2. Comment the code in line number 4.

    var jshint = require('gulp-jshint');
    
  3. Now, run gulp command in your terminal. Your server will be up.

Syscall
  • 19,327
  • 10
  • 37
  • 52
Pushp Singh
  • 590
  • 7
  • 10
  • This answer does not fix the root problem, which I think should be the focus of an answer on SO. – simeg Dec 16 '18 at 10:00