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 сам, поэтому я могу быть не совсем прав, но из моего опыта это работает следующим образом:
- - g это не способ установки глобальных библиотек, это только способ разместить их на системный путь, поэтому вы можете вызвать их из командной строки, не записывая полный путь к ним. Это полезно, например, тогда приложение node преобразует локальные файлы, например меньше - если вы установите его глобально, вы можете использовать его в любом каталоге.
- узел.сам 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 являются хорошими примерами приложений, которые имеют интерфейс командной строки, а также библиотека. В этих случаях вы можете выполните одно из следующих действий:
- установить его в обоих местах. Серьезно, у тебя так мало места на диске? Все в порядке, правда. Это крошечные программы JavaScript.
- установить его в глобальном масштабе, а затем npm link coffee-script или npm link express (если вы находитесь на платформе, поддерживающей символические ссылки.) Затем вам нужно только обновить глобальную копию, чтобы обновить все символические ссылки как что ж.
попытался добавить / отредактировать переменные среды и пришел к выводу, что:
- изменить/добавить
User variables
(из верхней коробки) вместоSystem variables
(нижней части); в противном случае вам нужно "запустить от имени администратора", чтобы заставить его работать. - добавить
;%AppData%\npm
toPath
для того, чтобы использовать его в качестве инструмента командной строки (если поддерживается, какjshint
иgrunt-cli
). - создать
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:
сообщение в установке узла
после установки узла я выполнил npm install -g bower
снова. И теперь Бауэр работает.
конечно, не нужно переустанавливать узел с собственным пользователем, как я. Решение должно быть через NODE_PATH или путь переменные, как объяснили другие пользователи.
это только для того, чтобы отметить, что эта проблема возникает, только если узел был установлен другим пользователем (или если во время установки опция добавить в путь > модули npm не было отмечено).
просто скачайте и переустановите узел из этой и это исправит все проблемы пути.
Не забудьте перезапустить командную строку или терминал.
Если вы используете windows, он принимает некоторые меры , 1) создайте файл с именем package.в JSON
{
"name": "hello"
, "version": "0.0.1"
, "dependencies": {
"express": "*"
}
}
где hello-это имя пакета, а * означает последнюю версию вашей зависимости
2) код каталог проекта и выполните следующую команду
установка npm
Он устанавливает зависимости