代码之家  ›  专栏  ›  技术社区  ›  Dori

require('bignumber.js')在松露测试中失败,npm ls-g显示它已安装(windows)

  •  0
  • Dori  · 技术社区  · 7 年前

    我试着用松露来测试代码的可靠性。因为从(或发送到)合同返回的数值是 BigNumber 我想要图书馆。我现在的测试是一行:

    let BigNumber = require('bignumber.js');
    

    打电话 您好!test.js

    如果我跑 npm ls -g | grep bignumber 我能看见 +-- bignumber.js@7.2.1 ,因此已安装;但如果我尝试:

    truffle.cmd test .\test\hello_test.js
    

    我得到 Error: Cannot find module 'bignumber.js' .

    发生什么事?

    松露版本4.0.6,NPM版本5.6.0

    2 回复  |  直到 7 年前
        1
  •  3
  •   Junbang Huang    7 年前

    这就是node require的工作方式: require('xx') 将搜索

    ./node_modules/xx.js
    ./node_modules/xx/index.js
    ./node_modules/xx/package.json
    

    如果它找不到,它将继续通过环境变量进行搜索, NODE_PATH . 如果未指定,则不会搜索任何全局模块。

    所以你可以检查你的 节点路径 .

        2
  •  1
  •   Dori    7 年前

    我不知道为什么,但是安装 bignumber.js 本地包成功了:

    C:\project\> npm install bignumber.js
    + bignumber.js@7.2.1
    added 1 package and moved 1 package in 4.222s
    
    C:\project\> truffle.cmd test .\test\hello_test.js
    
      0 passing (2 ms)
    

    这个 Bigunb.js 包现在出现在 npm ls -g npm ls (从项目根目录运行时)。