Как установить модуль глобально с помощью npm?

Недавно я установил модуль Node.js и npm на OSX и имею проблемы с настройками, которые, как я думаю:

npm install [MODULE] is not installing the node.js module to the default path 
which is /usr/local/lib/node_modules.

Ответ 1

Если вы хотите установить модуль npm по всему миру, убедитесь, что используете новый флаг -g, например:

npm install forever -g

Общие рекомендации относительно установки модуля npm с 1.0rc (взяты из blog.nodejs.org):

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

Недавно я использовал эти рекомендации, и он прошел довольно гладко. Я установил навсегда глобально (поскольку это инструмент командной строки) и все мои прикладные модули локально.

Однако, если вы хотите использовать некоторые модули по всему миру (т.е. express или mongodb), возьмите этот совет (также взятый из blog.nodejs.org):

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

  • Установите его в обоих местах. Серьезно, ты такой короткий на диске пространство? На самом деле это прекрасно. Они крошечные Программы для JavaScript.
  • Установите его глобально, а затем npm напишите кофе script или npm link express(если вы на платформе, которая поддерживает символические ссылки.) Тогда вам нужно только обновить глобальную копию, чтобы обновить все символические ссылки.

Первый вариант - лучший в моем мнение. Простой, ясный, явный. второй действительно удобен, если вы собирается повторно использовать одну и ту же библиотеку в куча разных проектов. (Еще npm в будущей партии.)

Я не тестировал один из этих вариантов, но они кажутся довольно простыми.

Ответ 2

На Mac я нашел вывод, содержащий информацию, которую я искал:

$> npm install -g karma
...
...
> [email protected] install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
...
$> ls /usr/local/share/npm/bin
karma nf

После добавления /usr/local/share/npm/bin в строку export PATH в моем .bash_profile, сохраните его и source ing, я смог запустить

$> karma --help

нормально.

Ответ 3

Мне нравится использовать файл package.json в корне вашей папки приложения.

Вот один из них, который я использую

nvm use v0.6.4

http://pastie.org/3232212

npm install

Ответ 4

У меня возникли проблемы с установкой Express на Ubuntu:

Если по какой-либо причине команда NPM отсутствует, проверьте команду npm с помощью npm help. Если этого не происходит, выполните следующие действия: http://arnolog.net/post/8424207595/installing-node-js-npm-express-mongoose-on-ubuntu

Если только команда Express не работает, попробуйте:

sudo npm install -g express

Это заставило все работать, поскольку я привык к Windows7 и OSX.

Надеюсь, это поможет!

Ответ 5

Возможно, у вас нет прав на запись для установки модуля node в глобальном местоположении, например /usr/local/lib/node_modules, и в этом случае запустите npm install -g package как root.