找不到模块'./lib/should'

时间:2013-10-10 16:55:23

标签: node.js npm mocha should.js

我有一个测试代码并尝试运行它

var should = require("should")
describe('Array', function(){
  describe('#indexOf()', function(){
    it('should return -1 when the value is not present',function(){
      [1,2,3].indexOf(5).should.equal(-1);
      [1,2,3].indexOf(0).should.equal(-1);
    })
  })
})

当我运行它时,我收到错误

Error: Cannot find module './lib/should'
    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> (/home/ritesh/projects/passport-topcoder/node_modules/should/index.js:2:18)
    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)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/ritesh/projects/passport-topcoder/test/module.test.js:1:76)
    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)
    at require (module.js:380:17)
    at /usr/local/lib/node_modules/mocha/lib/mocha.js:152:27
    at Array.forEach (native)
    at Mocha.loadFiles (/usr/local/lib/node_modules/mocha/lib/mocha.js:149:14)
    at Mocha.run (/usr/local/lib/node_modules/mocha/lib/mocha.js:306:31)
    at Object.<anonymous> (/usr/local/lib/node_modules/mocha/bin/_mocha:348:7)
    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 Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:901:3

我包括mocha,应该在package.json中,但为什么我面临这个错误。应该在我的节点模块中显示。请指南

2 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,我认为这是因为should包已经在两小时前更新了(它可能已经破坏了一些东西)。

npm install should@1.3.0

做了这个伎俩。

修改

版本2.0.1解决了这个问题。

答案 1 :(得分:3)

这只是意味着未安装来自NPM的should。只需使用

sudo npm install should  

这意味着它应该从节点包manage。

安装should

希望它让事情更清楚。

干杯。