Npm устанавливает все модули в/usr/local/lib/node_modules/

У меня есть node.js 0.8.14, установленный на Ubuntu 12.10. Я создал каталог в своем домашнем каталоге с подкаталогом node_modules. Я хочу установить некоторые локальные модули node, но запустив npm install myModule в этом каталоге устанавливается этот модуль в /usr/local/lib/node_modules/ (такое же поведение, как установка модуля с флагом -g

В .bashrc нет пути node.

Любая идея, как я могу установить локальные модули node?

Ответ 1

После некоторых дальнейших исследований я нашел решение.

Запуск команды npm config ls показал, что конфигурация по умолчанию global=false (вы видите конфигурацию по умолчанию с npm config ls -l) была перезаписана global=true в /home/vsdev/.npmrc и /usr/local/etc/npmrc.

Возврат к global=false решил проблему.

Ответ 2

Это нечетно.

  • FYI вам не нужно создавать каталог node_modules, npm сделает это для вас
  • npm обычно просто устанавливается в текущий каталог. Даже если пакет, который вы устанавливаете, настроен на предпочтение глобальной установки, npm будет устанавливать его локально, если вы явно не передадите параметр -g.
  • Можете ли вы запустить следующие команды оболочки и подтвердить, что npm действительно реальная npm?
    • which npm
    • alias | grep npm

Ответ 3

npm install load all in node_modules, то это может быть поведение версии 3 http://blog.npmjs.org/post/110924823920/npm-weekly-5 или, как упоминалось в @vsdev, после того, как вы сделаете уверен, что это поведение версии 3, и вы хотите пойти с ним, а затем еще лучше следовать ниже

1- удалите все модули.. в папку node_modules в вашем проекте, затем выполните: npm uninstall *

2- Скажите npm для установки с устаревшим пакетом для этой установки:

npm install --legacy-bundling "Постоянная" альтернатива:

Задайте конфигурацию npm, чтобы всегда использовать устаревшее связывание...

npm set legacy-bundling = true

.. и выполняйте как обычно:

npm install

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