Nodejs - модуль импорта Cant, если не использовать полный путь
Новое в node.js здесь;
Я установил его и пытаюсь использовать модуль w3 (на windows).
Я изменил свое глобальное местоположение репо на: C:\Users\<user>\.node_modules_global
и установил модуль web3 с командой ниже, которая создала новую папку в папке node_modules_global;:
npm install ethereum/web3.js --global
Когда я пытаюсь бежать
Web3 = require('web3')
это я получаю
Error: Cannot find module 'web3'
однако, если я использую полный путь:
Web3 = require('C:\\Users\\<user>\\.node_modules_global\\node_modules\\web3')
оно работает. Есть идеи, что может быть причиной этой проблемы? (Я добавил C:\\Users\\<user>\\.node_modules_global
к системной дорожке)
Спасибо
1 ответ
Вы устанавливаете его глобально, поэтому он сохраняется в вашей пользовательской папке, а не в проекте, а узел по умолчанию настроен для просмотра в node_modules
,
Два варианта это исправить:
- (а) Вместо этого сохраняйте пакеты локально
- Используйте только
npm install ethereum/web3.js
или жеnpm install ethereum/web3.js --save
установить его наnode_modules
каталог в вашем проекте. (Сначала вы должны поместить cd'd в папку вашего проекта!)
- Используйте только
- (b) Сделайте так, чтобы Node просматривал ваши глобальные папки по умолчанию
- использование
"NODE_PATH": "C:\\Users\\<user>\\.node_modules_global\\node_modules"
- использование
Как установить локально и как установить глобально
- Чтобы установить модуль локально, просто выполните
npm install my-module
или, если вы хотите добавить его в файл package.json, выполнитеnpm install my-module --save
- Чтобы глобально установить модуль, используйте
npm install my-module --global
Когда использовать локальные и глобальные модули
Вам следует:
- Установите модуль локально, если вы собираетесь требовать () его.
- Установите модуль глобально, если вы собираетесь запустить его в командной строке.
Источник: https://nodejs.org/en/blog/npm/npm-1-0-global-vs-local-installation/
Изменение пути к узлу
Вы можете установить NODE_PATH
переменная окружения к вашему собственному значению, и ваше приложение по умолчанию будет искать там, а не проекты node_modules
каталог.
Смотрите здесь: http://nodejs.org/api/modules.html