Добавьте переменную среды с именем 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_PATH
используется только при импорте модулей в приложениях Node.Если вы хотите использовать двоичные файлы глобально установленных модулей в вашем CLI, вам необходимо добавить его также в PATH
, но без части node_modules
(например, %AppData%\npm
в Windows 7/8/10).
Старая история
Я сам новичок в node.js, поэтому могу быть не совсем прав, но по своему опыту это работает так:
- -g - это не способ установки глобальных библиотек, это всего лишь способ разместить их по системному пути, чтобы вы могли вызывать их из командной строки, не записывая полный путь к ним.Это полезно, например, тогда, когда приложение узла конвертирует локальные файлы, например less - если вы устанавливаете его глобально, вы можете использовать его в любом каталоге.
- node.js сам не сделалпосмотрите на глобальный каталог npm, он использует другой алгоритм для поиска необходимых файлов: http://nodejs.org/api/modules.html#modules_file_modules (в основном, он сканирует каждую папку в пути, начиная с текущей папки node_modules и проверяет ее).
См. Аналогичный вопрос для получения более подробной информации: Как установить модуль глобально с помощью npm?