Node.js:找不到模块'chai'

aaa*_*aaa 19 javascript node.js npm

我试图关注https://mochajs.org/的第一个例子

做完这个

$ npm install -g mocha
Run Code Online (Sandbox Code Playgroud)

拿到

C:\Windows\system32>npm install -g mocha
npm WARN deprecated jade@0.26.3: Jade has been renamed to pug, please install th
e latest version of pug instead of jade
npm WARN deprecated graceful-fs@2.0.3: 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
mocha@2.4.5 C:\Users\TestUser\AppData\Roaming\npm\node_modules\mocha
??? escape-string-regexp@1.0.2
??? growl@1.8.1
??? commander@2.3.0
??? diff@1.4.0
??? supports-color@1.2.0
??? debug@2.2.0 (ms@0.7.1)
??? mkdirp@0.5.1 (minimist@0.0.8)
??? jade@0.26.3 (commander@0.6.1, mkdirp@0.3.0)
??? glob@3.2.3 (inherits@2.0.1, graceful-fs@2.0.3, minimatch@0.2.14)
Run Code Online (Sandbox Code Playgroud)

还装了柴(对不起,我原本忘了提它)

C:\Windows\system32>npm install -g chai
chai@3.5.0 C:\Users\TestUser\AppData\Roaming\npm\node_modules\chai
??? assertion-error@1.0.1
??? type-detect@1.0.0
??? deep-eql@0.1.3 (type-detect@0.1.1)
Run Code Online (Sandbox Code Playgroud)

这是代码

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));
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

继续

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)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Bla*_*kus 45

您已chai 全局安装(带-g选项),这就是为什么require找不到它.

您需要在本地(在您的node_modules目录中)安装它,以便require可以找到它.

为此,请键入:

npm install --save-dev chai
Run Code Online (Sandbox Code Playgroud)

  • 您已经在全球范围内安装了`chai`(使用`-g`),您必须在项目目录中本地安装它。 (2认同)
  • 谢谢。那行得通。但是,那时在全球范围内安装东西有什么意义呢? (2认同)