我正在尝试用松露测试可靠性代码。由于(或发送到)合同返回的数字值是BigNumber
,我想要求库。我目前的考试是单线:
let BigNumber = require('bignumber.js');
名为 hello_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'
。
发生了什么事?
Truffle version 4.0.6,npm version 5.6.0
答案 0 :(得分:3)
这是节点需要如何工作的方式:
require('xx')
将搜索
./node_modules/xx.js
./node_modules/xx/index.js
./node_modules/xx/package.json
如果找不到,它将继续按环境变量NODE_PATH
进行搜索。如果未指定,则不会搜索任何全局模块。
因此,您可以查看NODE_PATH
。
答案 1 :(得分:1)
我不知道为什么,但在本地安装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)
bignumber.js
包现在同时显示在npm ls -g
和npm ls
中(从项目根目录运行时)。