Gulp要求“找不到模块”,即使它存在

时间:2015-07-06 01:41:41

标签: javascript node.js unit-testing npm gulp

我遇到了一个奇怪的问题,我的想法已经用完了。我正在尝试学习JS单元测试,所以我用Jasmine设置了gulp。问题是,当我的gulp构建运行时,我得到:

Error: Cannot find module 'gulp-jasmin'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Users/path/to/project/gulpfile.js:5:19)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)

现在,我知道这是一个常见问题,但我已经尝试过通常可以解决这些问题的所有问题。我的 package.json

{
  "name": "boxfish",
  "version": "0.3.0",
  "devDependencies": {
    "gulp": "^3.9.0",
    "gulp-jasmine": "^2.0.1",
    "gulp-livereload": "^3.8.0",
    "gulp-notify": "^2.2.0",
    "gulp-uglify": "^1.2.0"
  }
}

我的./node_modules文件夹:

node modules folder

我已尝试执行rm -rf ./node_modules清除它,然后npm install加载新副本。我可以清楚地看到模块,并且所有其他模块加载得很好,就是这个。

我的 gulpfile.js 如下所示:

/**
 * Dependencies
 *****************/
var gulp        = require('gulp');
var jasmine     = require('gulp-jasmin');
var notify      = require('gulp-notify');

/**
 * Unit Testing
 *****************/

gulp.task('test', function () {
  gulp.src('./tests/*.js')
    .pipe(jasmine())
    .on('error', notify.onError({
      title: 'Jasmine Test Failed',
      message: 'One or more tests failed, see the cli for details.'
    }));
});

当我运行gulp test时,我得到了丢失的模块错误。如果我注释掉任务并评论 gulp-jasmin 的要求,那么它将需要其他模块。

我可以做些什么来让它识别this module?是否存在某种自动加载注册与npm有关,我可以检查一下吗?

1 个答案:

答案 0 :(得分:3)

你是肯定的,这不仅仅是一个错字吗?你的gulpfile和错误都让你看起来像你输错了gulp-jasmine(最后错过了'e'):

Error: Cannot find module 'gulp-jasmin'

var jasmine     = require('gulp-jasmin');