aaa
aaa

Reputation: 311

Node.js: Cannot find module 'chai'

I am trying to follow a first example from https://mochajs.org/

Done this

$ npm install -g mocha

Got

C:\Windows\system32>npm install -g mocha
npm WARN deprecated [email protected]: Jade has been renamed to pug, please install th
e latest version of pug instead of jade
npm WARN deprecated [email protected]: graceful-fs version 3 and before will fai
l on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possibl
e.
C:\Users\TestUser\AppData\Roaming\npm\_mocha -> C:\Users\TestUser\AppData\Roamin
g\npm\node_modules\mocha\bin\_mocha
C:\Users\TestUser\AppData\Roaming\npm\mocha -> C:\Users\TestUser\AppData\Roaming
\npm\node_modules\mocha\bin\mocha
[email protected] C:\Users\TestUser\AppData\Roaming\npm\node_modules\mocha
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected])

Also installed chai (sorry, I originally forgot to mention it)

C:\Windows\system32>npm install -g chai
[email protected] C:\Users\TestUser\AppData\Roaming\npm\node_modules\chai
├── [email protected]
├── [email protected]
└── [email protected] ([email protected])

And here is the code

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

Keep getting

Error: Cannot find module 'chai'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (c:\git\develop\SendText\test\test2.js:1:76)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)

What am I doing wrong?

Upvotes: 27

Views: 47170

Answers (6)

San Jaisy
San Jaisy

Reputation: 17108

npm install types/chai

Install in the local drive

Upvotes: 0

You need to be sure that both installations are on the same folder because if the node_modules folder (created during mocha installation) is not on the same folder where you are installing chi, then the error: Cannot find module 'chai' appears.

npm install --global mocha

npm install chi

npm test (the tests were executed successfully)

Upvotes: 0

wei
wei

Reputation: 11

$ npm install chai

[email protected] ../../../../../../node_modules/chai
├── [email protected]
├── [email protected]
└── [email protected] ([email protected])

-MacBook-Air:test $ mocha


  Array
    #indexOf()
      ✓ should return -1 when the value is not present


  1 passing (9ms)

Upvotes: 1

Blackus
Blackus

Reputation: 7203

You have installed chai globally (with -g option), that's why require don't find it.

You need to install it locally (on your node_modules directory), so that require can find it.

To do so, type:

npm install --save-dev chai

Upvotes: 68

Syam Pillai
Syam Pillai

Reputation: 5217

You should install chai

$ npm install --save chai

Upvotes: 1

You need to install chai locally to require it.

npm install chai

Upvotes: 4

Related Questions