Nodejs не может найти установленный модуль в Windows?

Я изучаю nodejs на данный момент на Windows. Несколько модулей установлены глобально с npm.cmd и nodejs не смогли найти установленные модули. Возьмем, к примеру, нефрит.--5-->

npm install jade -g

Jade установлен в каталоге "C:Program Files (x86)nodejsnode_modules", но следующий код не будет "Cannot find module 'jade'" ошибка

var jade = require('jade');

однако код будет успешно запущен, когда jade будет локально установлен (без опции-g в npm). Я не хочу использовать локально установленные модули, это пустая трата дисковое пространство для меня, может кто-то помочь мне сделать глобально установленные модули работать на Windows?

17 ответов


добавить переменную окружения NODE_PATH и установить его в %USERPROFILE%\Application Data\npm\node_modules (Windows XP),%AppData%\npm\node_modules (Windows 7/8/10) или везде, где npm заканчивает установку модулей на вашем вкусе Windows. Чтобы сделать это раз и навсегда, добавьте это как системную переменную на вкладке Дополнительно диалогового окна Свойства системы (run control.exe sysdm.cpl,System,3).

быстрое решение в Windows 7+ - это просто запустить:

rem for future
setx NODE_PATH %AppData%\npm\node_modules
rem for current session
set NODE_PATH=%AppData%\npm\node_modules

стоит отметить, что NODE_PATH используется только при импорте модулей в узле приложения. Если вы хотите использовать двоичные файлы глобально установленных модулей в вашем CLI, вам нужно добавить его также в свой PATH, а не node_modules часть (например,%AppData%\npm в Windows 7/8/10).


старая история

Я довольно новыми для узла.js сам, поэтому я могу быть не совсем прав, но из моего опыта это работает следующим образом:

  1. - g это не способ установки глобальных библиотек, это только способ разместить их на системный путь, поэтому вы можете вызвать их из командной строки, не записывая полный путь к ним. Это полезно, например, тогда приложение node преобразует локальные файлы, например меньше - если вы установите его глобально, вы можете использовать его в любом каталоге.
  2. узел.сам js не смотрел на глобальный dir npm, он использует другой алгоритм для поиска необходимых файлов:http://nodejs.org/api/modules.html#modules_file_modules (в основном его сканирование каждой папки в пути, начиная с текущего for папки node_modules папка и проверяет ее).

см. аналогичный вопрос для получения более подробной информации:Как установить модуль с помощью npm?


Если вы находитесь в платформе windows7, возможно, вам следует изменить NODE_PATH следующим образом: %AppData%\npm\node_modules


Я знаю, что могу разбудить зомби, но я думаю, что это все еще проблема, если вам нужен глобальный доступ к модулям узлов в Windows 7, вам нужно добавить это в свой путь глобальной переменной:

C:\Users\{USER}\AppData\Roaming\npm

важно: только это без node_modules часть, мне потребовалось полчаса, чтобы увидеть это.


для его работы в windows 10 я решил его, добавив папку %USERPROFILE%\AppData\Roaming\npm на мой путь. Имея \node_modules добавлен такой: %USERPROFILE%\AppData\Roaming\npm\node_modules\ не работает для меня.


Я просто процитирую этот узел блоге...

В общем, правило такое:

  • если вы устанавливаете что-то, что хотите использовать в своей программе, используя require('whatever'), установите его локально, в корне ваш проект.
  • если вы устанавливаете что-то, что хотите использовать в своей оболочке, в командной строке или что-то еще, установите его глобально, чтобы его двоичные файлы в конечном итоге на вашем пути переменная окружения.

...

конечно, есть несколько случаев, когда вы хотите сделать оба. Coffee-script и Express являются хорошими примерами приложений, которые имеют интерфейс командной строки, а также библиотека. В этих случаях вы можете выполните одно из следующих действий:

  1. установить его в обоих местах. Серьезно, у тебя так мало места на диске? Все в порядке, правда. Это крошечные программы JavaScript.
  2. установить его в глобальном масштабе, а затем npm link coffee-script или npm link express (если вы находитесь на платформе, поддерживающей символические ссылки.) Затем вам нужно только обновить глобальную копию, чтобы обновить все символические ссылки как что ж.

чтобы сделать его коротким, использовать npm link jade в каталоге приложений.


попытался добавить / отредактировать переменные среды и пришел к выводу, что:

  1. изменить/добавить User variables (из верхней коробки) вместо System variables (нижней части); в противном случае вам нужно "запустить от имени администратора", чтобы заставить его работать.
  2. добавить ;%AppData%\npm to Path для того, чтобы использовать его в качестве инструмента командной строки (если поддерживается, как jshint и grunt-cli).
  3. создать NODE_PATH и установить его в %AppData%\npm\node_modules для того чтобы require('<pkg_name>') в скриптах без установки его в проект справочник. (Но npm link предложил для этого требования, если вы работаете на ОС с mklink например, Vista и новее.)

тестовой среде:

  • Win 7 (Ent., 64-бит, SP1), узел.js 4.2.4, npm 2.14.12
  • Win 8.1 (Ent. 64-разрядная), узел.js 0.10.30, npm 1.4.21

я столкнулся с этой проблемой в Windows 7, запустив

npm install -g gulp

как администратор при входе в систему как обычный пользователь.

устранение: при выполнении той же установки, что и обычный пользователь (не "Запуск от имени администратора" для cmd), все было в порядке. Я думаю, это связано с путем установки и поиска по умолчанию.


У меня было ужасное время, чтобы глобальные модули работали. В конце концов, я явно добавил C:\Users\yourusername\AppData\Roaming\npm к переменной PATH в разделе системные переменные. Мне также нужно было, чтобы эта переменная появилась перед переменной пути nodejs в списке.

Я запускаю Windows 10.


У меня опыт с Win8.1 НПМ установки модулей на C:\Users\[UserName]\AppData\Roaming\npm\node_modules но dumply ищет их на C:\Users\[UserName]\node_modules.

один простой модуль справки решения в применении полным путем:

var jsonminify = require("C:/Users/Saulius/AppData/Roaming/npm/node_modules/jsonminify");

для windows все говорили, что вы должны установить переменные среды для модулей nodejs и npm, но знаете ли вы, почему? Для некоторых модулей, у них есть инструмент командной строки, после установки модуля, там где [модуль].cmd на C:\Program файлы\nodejs, и он используется для запуска в командном окне. Поэтому, если вы не добавите путь, содержащий файл cmd, в переменные среды %PATH%, вы не будете запускать их успешно с помощью команды окно.


в качестве альтернативы вы могли бы добавить ~/.npmrc право префикс. У меня есть C:\Program Files\nodejs для 64 Win7.


я наткнулся на этот вопрос, потому что я хочу использовать узел.js с visual studio 2015 на моем новом компьютере с windows 10. Я использовал узел.js в windows 7 и 8 и 8.1 никогда не является проблемным узлом.js находит модуль. Я использую устаревший узел.js 0.10.39, потому что я должен использовать эту версию из-за модуля serial и RFXCOM.

ответ для windows 10-установить NODE_PATH в переменных среды с помощью C:\Users\User\node_modules - ...


для Windows 10 мне пришлось локально установить gulp в папку:

C:\Users\myaccount\AppData\Roaming\npm\node_modules

npm install gulp

это исправило мою проблему "глоток не распознается"


у меня была такая же проблема, пытаясь установить bower с npm install -g bower

Я думаю, это потому, что узел был установлен другой пользователь!--6-->, а не мне.

Я удалил узел, а затем переустановил его. Во время установки я увидел этот текст для опции добавить в путь > модули npm:

сообщение в установке узла

enter image description here

после установки узла я выполнил npm install -g bower снова. И теперь Бауэр работает.

конечно, не нужно переустанавливать узел с собственным пользователем, как я. Решение должно быть через NODE_PATH или путь переменные, как объяснили другие пользователи.

это только для того, чтобы отметить, что эта проблема возникает, только если узел был установлен другим пользователем (или если во время установки опция добавить в путь > модули npm не было отмечено).


просто скачайте и переустановите узел из этой и это исправит все проблемы пути.

Не забудьте перезапустить командную строку или терминал.


Если вы используете windows, он принимает некоторые меры , 1) создайте файл с именем package.в JSON

 {
  "name": "hello"
, "version": "0.0.1"
, "dependencies": {
    "express": "*"
  }
}

где hello-это имя пакета, а * означает последнюю версию вашей зависимости

2) код каталог проекта и выполните следующую команду

установка npm

Он устанавливает зависимости