【问题标题】:Node.js: Cannot find module 'chai'Node.js:找不到模块'chai'
【发布时间】:2017-09-12 12:13:42
【问题描述】:

我正在尝试遵循https://mochajs.org/ 的第一个示例

完成了

$ npm install -g mocha

得到

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)

还安装了 chai(对不起,我原来忘了提)

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)

这是代码

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));
    });
  });
});

继续努力

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)

我做错了什么?

【问题讨论】:

    标签: javascript node.js npm


    【解决方案1】:

    你已经安装了chai全局(带有-g选项),这就是require找不到它的原因。

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

    为此,请输入:

    npm install --save-dev chai
    

    【讨论】:

    • chai安装了,但恐怕还是没看到
    • 你已经全局安装了chai(带有-g),你必须在本地安装它,在你的项目目录中。
    • 谢谢。那行得通。但是,那么在全球范围内安装东西有什么意义呢?
    • 一般来说,全局安装的包就是我们在终端使用的包,或多或少像一个“独立”的程序。 bower 就是一个很好的例子。 ;)
    【解决方案2】:

    您需要在本地安装chai 才能使用它。

    npm install chai
    

    【讨论】:

    • chai安装了,但恐怕还是没看到
    • Chai 作为全局包安装,但要要求它,您需要在本地安装它。您可以使用 documentation 在 Node.js 中了解 require 的工作原理。
    【解决方案3】:

    你应该安装 chai

    $ npm install --save chai

    【讨论】:

    • chai安装了,但恐怕还是没看到
    【解决方案4】:
    $ npm install chai
    
    chai@3.5.0 ../../../../../../node_modules/chai
    ├── assertion-error@1.0.2
    ├── type-detect@1.0.0
    └── deep-eql@0.1.3 (type-detect@0.1.1)
    
    -MacBook-Air:test $ mocha
    
    
      Array
        #indexOf()
          ✓ should return -1 when the value is not present
    
    
      1 passing (9ms)
    

    【讨论】:

      【解决方案5】:

      您需要确保两个安装都在同一个文件夹中 因为如果 node_modules 文件夹(在 mocha 安装期间创建) 不在安装 chi 的同一个文件夹中, 然后出现错误:找不到模块'chai'。

      npm install --global mocha

      npm 安装芯片

      npm test(测试执行成功)

      【讨论】:

        【解决方案6】:

        npm 安装类型/柴

        安装在本地驱动器中

        【讨论】:

          猜你喜欢
          • 2011-07-14
          • 1970-01-01
          • 2013-08-10
          • 2019-05-12
          • 2012-01-02
          • 2017-02-18
          • 2012-12-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多