Как мне установить модуль глобально, используя 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.

9 ответов

Решение

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

npm install forever -g

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

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

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

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

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

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

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

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

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

$> npm install -g karma
...
...
> ws@0.4.25 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я смог бежать

$> karma --help

обычно.

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

Вот один я использую

nvm use v0.6.4

http://pastie.org/3232212

npm install

У меня были проблемы с установкой 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.

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

У вас должны быть права суперпользователя,

 sudo npm install -g <package name>

На моем Macbook у меня сработали рекомендуемые шаги в соответствии с официальным документом.

Сводные шаги:

  1. Создайте экземпляр nvm, используя следующую команду:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | трепать

Вы можете проверить последнюю версию на этой странице:https://github.com/nvm-sh/nvm

  1. создайте .zshrc в домашнем каталоге, если файл уже отсутствует.

    коснитесь .zshrc

  2. поместите следующий контент в файл .zshrc

export NVM_DIR="$HOME / .nvm" [-s "$NVM_DIR / nvm.sh"] &&. "$NVM_DIR / nvm.sh" # Загружает nvm

  1. Установите nvm с помощью команды

nvm install --lts

  1. перезапустите терминал - теперь вы готовы установить глобальный пакет с помощью npm.

Начиная с npm версии 8-gили--globalфлаг устарел в соответствии с предупреждением, которое я получаю в консоли (официальные документы еще не обновлены):

      npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

Итак, новая команда для глобальной установки модулей:

      npm install forever --location=global

Гдеforeverэто имя пакета, который вы хотите установить.

В Ubuntu укажите путь к node_modules в файле .bashrc

export PATH="/home/username/node_modules/.bin:$PATH"

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

Другие вопросы по тегам