require ('bignumber.js') терпит неудачу в тесте трюфелей, npm ls -g показывает, что он установлен (Windows) - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь проверить код солидности с трюфелем.Поскольку числовые значения, возвращаемые (или отправляемые) контрактам, равны 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'.

Что происходит?

Трюфельная версия 4.0.6, npm версия 5.6.0

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Так работает узел, требующийся: require('xx') будет искать

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

Если он не может найти, он продолжит поиск по переменной среды NODE_PATH.Если это не указано, он не будет искать ни один глобальный модуль.

Так что вы можете проверить свой NODE_PATH.

0 голосов
/ 08 июня 2018

Я не знаю почему, но локальная установка пакета 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 (при запускеиз корневого каталога проекта).

...