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

Другие вопросы по тегам