Я изучаю nodejs в данный момент в Windows. Несколько модулей установлены глобально с npm.cmd, а nodejs не смогли найти установленные модули. Возьмите нефрит, например,
npm install jade -g
Jade устанавливается в каталог "C:\Program Files (x86)\nodejs\node_modules"
, но следующий код не будет выполнен с ошибкой "Cannot find module 'jade'"
,
var jade = require('jade');
Однако код будет успешно работать, если jade локально установлен (без опции -g в npm). Я не хочу использовать локально установленные модули, это пустая трата дискового пространства для меня, может ли кто-нибудь помочь мне заставить модули, установленные на глобальном уровне, работать в Windows?
Добавьте переменную среды с именем NODE_PATH
и установите ее в %USERPROFILE%\Application Data\npm\node_modules
(Windows XP), %AppData%\npm\node_modules
(Windows 7/8/10) или где-нибудь, когда npm завершает установку модулей на ваш вкус Windows. Чтобы сделать это раз и навсегда, добавьте это как системную переменную на вкладке "Дополнительно" диалогового окна "Свойства системы" (запустите 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.js, поэтому я могу быть не совсем прав, но по своему опыту он работает следующим образом:
См. аналогичный вопрос для получения дополнительной информации: Как установить модуль во всем мире с помощью npm?
set NODE_PATH=C:\Documents and Settings\DevUser\Application Data\npm\node_modules
, и она работает как положено. Странно, что глобально установленные модули расположены в «% USERPROFILE% \ Application Data \ npm \ node_modules» в Windows, в то же время в NODE_PATH не должно быть кавычек.
Если вы находитесь на платформе Windows 7, возможно, вы должны изменить NODE_PATH следующим образом:
%AppData%\npm\node_modules
Я знаю, что могу пробудить зомби, но я думаю, что это все еще проблема, если вам нужен глобальный доступ к модулям node в Windows 7, вам нужно добавить это в свой глобальный путь:
C:\Users\{USER}\AppData\Roaming\npm
Важно: только это без части node_modules
, мне понадобилось полчаса, чтобы это увидеть.
node_modules
, тоже с этим боролся!
Чтобы заставить его работать в Windows 10, я решил его, добавив папку %USERPROFILE%\AppData\Roaming\npm
в мой PATH. При добавлении \node_modules
: %USERPROFILE%\AppData\Roaming\npm\node_modules\
не работает для меня.
Я просто напишу из этого сообщения node
В общем, эмпирическое правило:
- Если вы устанавливаете что-то, что хотите использовать в своей программе, используя require ('whatever'), а затем установите его локально, в корне ваш проект.
- Если вы устанавливаете что-то, что хотите использовать в своей оболочке, в командной строке или что-то еще, установите ее глобально, чтобы ее двоичные файлы попадают в переменную среды PATH.
...
Конечно, есть случаи, когда вы хотите сделать то и другое. Coffee- script и Express оба являются хорошими примерами приложений, которые имеют интерфейс командной строки, а также библиотеку. В таких случаях вы можете выполните одно из следующих действий:
- Установите его в обоих местах. Серьезно, это вы на коротком диске на диске? На самом деле это прекрасно. Theyre крошечные программы JavaScript.
- Установите его по всему миру, а затем npm напишите кофе - script или npm link express (если вы на платформе, поддерживающей символические ссылки). Затем вам необходимо обновить глобальную копию, чтобы обновить все символические ссылки, как хорошо.
They're tiny JavaScript programs.
Некоторые из этих библиотек, конечно, не крошечные!
Чтобы сделать это коротко, используйте npm link jade
в каталоге приложения.
npm link jade
не может работать в Windows, npm возвращает сообщение об ошибке следующим образом: npm ERR! Error: npm link not supported on windows
Пытался добавлять/редактировать переменные окружения и прийти к выводу, что:
User variables
(верхнего окна) вместо System variables
(нижней части); в противном случае вы должны "запустить как администратор", чтобы заставить его работать.;%AppData%\npm
в Path
, чтобы использовать его как инструмент командной строки (если поддерживается, например jshint
и grunt-cli
).NODE_PATH
и установите его %AppData%\npm\node_modules
для require('<pkg_name>')
в сценариях без его установки в каталоге проекта. (Но npm link
предлагается для этого требования, если вы работаете с ОС с mklink
, например Vista и новее.)Условия тестирования:
Я столкнулся с этой проблемой в Windows 7, запустив
npm install -g gulp
в качестве администратора при входе в систему как обычный пользователь.
Решение: При выполнении той же установки, что и обычный пользователь (а не "запустить как admin" для cmd), все было в порядке. Я думаю, это связано с установкой по умолчанию и поиском.
У меня было ужасное время, когда работали глобальные модули. В конце концов я явно добавил C:\Users\yourusername\AppData\Roaming\npm
в переменную PATH в System Variables. Мне также нужно было, чтобы эта переменная приходила к переменной пути nodejs в списке.
Я запускаю Windows 10.
Для окон все говорят, что вы должны установить переменные окружения для модулей nodejs и npm, но знаете ли вы, почему? Для некоторых модулей у них есть инструмент командной строки, после установки модуля есть файл [module].cmd в C:\Program Files\nodejs, и он используется для запуска в команде окна. Поэтому, если вы не добавляете путь, содержащий файл cmd, к переменным среды % PATH%, вы не сможете их успешно запустить через окно командной строки.
Из моего опыта с win8.1 npm устанавливает модули на
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");
Я наткнулся на этот вопрос, потому что я хочу использовать node.js с visual studio 2015 на моем новом компьютере с окнами 10. Я использовал node.js для окон 7 и 8 и 8.1 Никогда не проблема node.js нахождение модуля. Я использую устаревшее node.js 0.10.39, потому что я должен использовать эту версию из-за модуля serial и RFXCOM.
Ответ для Windows 10 заключается в установке NODE_PATH в переменных среды с помощью C:\Users\User\ node_modules.
C:\Users\User\node_modules
Я вижу некоторые модули в C:\Users\User\AppData\Roaming\npm\node_modules
Я вижу некоторые модули в C:\Users\User\node_modules
Также находится в C:\Program Files (x86)\nodejs\node_modules\npm\node_modules
Не уверен, как это происходит. Что есть что, и почему они так поступили?
В качестве альтернативы вы можете добавить ~/.npmrc
вправо префикс. У меня есть C:\Program Files\nodejs
для 64 Win7.
Просто скачайте и переустановите node из this, и это устранит все проблемы с пути.
Не забудьте перезапустить командную строку или терминал.
У меня была та же проблема, пытаясь установить беседку с npm install -g bower
Я думаю, это было потому, что node был установлен другим пользователем, а не мной.
Я удалил node, а затем переустановил его. Во время установки я увидел этот текст для опции Добавить в PATH > npm modules:
Сообщение в node установка
После установки node я снова выполнил npm install -g bower
. И теперь работает беседа.
Несомненно, не нужно переустанавливать node с собственным пользователем, как я. Решение должно быть через переменные NODE_PATH или PATH, как объяснили другие пользователи.
Следует отметить, что эта проблема возникает только в том случае, если node был установлен другим пользователем (или если во время установки опция Добавить в PATH > модули npm не была отмечена).
Для Windows 10 мне пришлось локально установить gulp в папку:
C:\Users\MyAccount\AppData\Roaming\НПМ\node_modules
npm install gulp
Это исправлено. Моя проблема "gulp не распознается"
если вы используете окна, требуется несколько шагов, 1) создайте файл с именем package.json
{
"name": "hello"
, "version": "0.0.1"
, "dependencies": {
"express": "*"
}
}
где hello - это имя пакета, а * означает последнюю версию вашей зависимости
2) в каталог проекта и выполните следующую команду
npm install
Он устанавливает зависимости