Gulp错误:找不到模块'jshint/src/cli'。

119

我刚安装了El Capitan系统,决定再次尝试使用这些任务运行工具。

我正在按照SitePoint的Gulp.js入门教程进行操作,但在第四步时遇到问题。当我尝试运行gulp jshint时,出现 "Error: Cannot find module 'jshint/src/cli'" 的错误信息。

我不知道是什么原因导致这种情况,所以在这里寻求帮助。下面是一些截图,以帮助解决这个问题。

运行gulp jshint时终端出现的错误

gulp项目的文件夹结构

如往常一样,非常感谢任何建议。


1
jshint已安装吗? - MinusFour
是的,没错。为了确保,我甚至重新安装了它,但仍然遇到相同的错误。 - lateralaus
6
你是如何安装它的?需要在你的 Node 应用程序根目录下执行以下命令进行安装:npm install jshint gulp-jshint --save-dev - MinusFour
1
@lateralaus 你也执行了 npm install jshint 吗? - Flobin
1
我使用了 npm install gulp-jshint --save-dev,这和 npm install jshint 有什么不同吗? - lateralaus
显示剩余2条评论
6个回答

330
您需要安装jshint,这将解决该问题。
> npm install --save-dev jshint gulp-jshint

1
就这样了!非常感谢! - Psi
这不就是做什么的吗?npm install gulp-jshint --save-dev - lateralaus
2
我遇到了同样的问题。我认为开发人员在最新版本中对gulp-jshint的结构进行了更改,这导致了这个问题(如果您查看https://github.com/spalger/gulp-jshint/issues/131)。当我安装`gulp-jshint`时,我注意到了一个同级依赖警告。 - CSharp
8
@user3042437 万岁!这样就可以了 :D 原来我需要使用 npm install --save-dev jshint gulp-jshint 而不是教程中提到的 npm install gulp-jshint --save-dev - lateralaus
@lateralaus 如果你还在的话 - 你应该接受这个答案 :) 左边有一个勾选标记 - Tim Malone
当我输入 "npm install --save-dev jshint gulp-jshint" 时,它与我一起正常工作。 - Ahmed Mahmoud

27

事实证明,我需要使用npm install --save-dev jshint gulp-jshint而不是教程中所述的npm install gulp-jshint --save-dev。在https://github.com/spalger/gulp-jshint/issues/131上发现了相关讨论,特别感谢@user3042437提供的链接。


我也在使用同样的教程,卡在了同一个地方。感谢您发布答案!现在可以正常运行了。 - Orlando Morales-Cochran

0

如果您在输入正确的语法(npm install --save-dev jshint gulp-jshint)后仍然遇到错误,可以尝试以下方法。

在重新运行安装之前,请进入您的package.json文件并删除jshint和gulp-jshint的行,确保在运行安装之前编辑您的package.json以删除调用jshint和gulp-jshint的行,否则错误将持续存在。


-1
有时候措辞的顺序确实很重要。我发现这个命令:npm install --save-dev jshint gulp-jshint 是行不通的,但是这个命令:npm install jshint gulp-jshint --save 就可以。

-1

这里你的目标是jshint,可能你没有安装它。(你可以在gulp.task('jshint', function() {中进行安装。)

试试这个:

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

这符合你require的方式。
var jshint = require('gulp-jshint');

-2

有一个临时解决方案可以绕过这个错误。即使您不想在应用程序的任何地方使用jshint.js文件,这个临时解决方案也会正常工作。

  1. 打开你的 gulpfile.js 文件。
  2. 注释掉第4行的代码。

    var jshint = require('gulp-jshint');
    
  3. 现在,在终端中运行 gulp 命令。你的服务器将会启动。


这个答案并没有解决根本问题,我认为应该把重点放在SO的答案上。 - simeg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接