require('bignumber.js') 在松露测试中失败,npm ls -g 显示它已安装 (Windows)
require('bignumber.js') fails in truffle test, npm ls -g shows it's installed (Windows)
我正在尝试用 truffle 测试 solidity 代码。由于从合同返回(或发送到)的数值是 BigNumber
s 我想需要图书馆。我目前的测试是单线测试:
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 版本 4.0.6,npm 版本 5.6.0
我不知道为什么,但是在本地安装 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
中(当 运行 来自项目根目录时)。
这是节点要求的工作方式:
require('xx')
将搜索
./node_modules/xx.js
./node_modules/xx/index.js
./node_modules/xx/package.json
如果找不到,会根据环境变量NODE_PATH
继续查找。如果没有指定,它将不会搜索任何全局模块。
所以你可以检查你的NODE_PATH
。
我正在尝试用 truffle 测试 solidity 代码。由于从合同返回(或发送到)的数值是 BigNumber
s 我想需要图书馆。我目前的测试是单线测试:
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 版本 4.0.6,npm 版本 5.6.0
我不知道为什么,但是在本地安装 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
中(当 运行 来自项目根目录时)。
这是节点要求的工作方式:
require('xx')
将搜索
./node_modules/xx.js
./node_modules/xx/index.js
./node_modules/xx/package.json
如果找不到,会根据环境变量NODE_PATH
继续查找。如果没有指定,它将不会搜索任何全局模块。
所以你可以检查你的NODE_PATH
。