Каков предложенный способ установки brew, node.js, io.js, nvm, npm на OS X?

Я стараюсь использовать доморощенный как можно больше. Каков предложенный способ установки следующего в OS X?

и, надеюсь, поддерживает разработку для:

Ответ 1

  • С помощью homebrew установите nvm:

    brew update
    brew install nvm
    source $(brew --prefix nvm)/nvm.sh
    

    Добавьте последнюю команду в файл .profile, .bashrc или .zshrc, чтобы не запускать ее снова при каждом запуске терминала. Например, чтобы добавить его в .profile run:

    echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.profile
    

    Если у вас возникли проблемы с установкой nvm с помощью brew, вы можете установить его вручную (см. здесь)

  • С помощью nvm установите node или iojs (вы можете установить любую желаемую версию):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
    
  • npm отправляется с помощью node (или iojs), поэтому он будет доступен после установки node (или iojs). Вы можете обновить его до последней версии:

    $ npm install -g [email protected]
    

    UPD Предыдущая версия была npm update -g npm. Спасибо @Metallica за то, что вы указали правильный путь (см. Комментарий ниже).

  • Используя npm установите ionic:

    npm install -g ionic
    
  • Как насчет ngCordova: вы можете установить его с помощью npm или bower. Я не знаю, какой вариант подходит для вас, это зависит от менеджера пакетов, который вы хотите использовать для клиентской стороны. Поэтому я опишу их оба:

    • Использование npm. Перейдите в папку проекта и установите ng-cordova в нем:

      npm install --save ng-cordova
      
    • Использование bower: установка беседки:

       npm install -g bower
      

      И затем перейдите в папку проекта и установите ngCordova в нем:

       bower install --save ngCordova
      

PS

  • Для некоторых команд может потребоваться привилегия суперпользователя
  • Короткий вариант npm install some_module - npm i some_module

Ответ 2

Обновление 2019: используйте NVM для установки узла, а не Homebrew

В большинстве ответов рекомендованным способом установки nvm является использование Homebrew

Не делай этого

На Github Page для nvm это ясно вызвано:

Homebrew установка не поддерживается. Если у вас есть проблемы с nvm, установленным в homebrew, пожалуйста, удалите brew и установите его, следуя приведенным ниже инструкциям, прежде чем сообщать о проблеме.

Используйте вместо этого следующий метод

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Сценарий клонирует репозиторий nvm в ~/.nvm и добавляет исходную строку в ваш профиль (~/.bash_profile, ~/.zshrc, ~/.profile или ~/.bashrc).

А затем используйте nvm для установки узла. Например, чтобы установить последнюю версию LTS, выполните:

nvm install v8.11.1

Чистый и без проблем. Это пометит это как версию вашего узла по умолчанию, так что вы должны быть полностью настроены

Ответ 3

Я использую управление версиями n (Node)

Вы можете установить его двумя способами.

brew install n

или

npm install -g n

Вы можете переключаться между различными версиями node и io. Вот пример из моего текущего env, когда я вызываю n без параметров:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 

Ответ 4

Я очень опоздал на это, но мне не понравились другие ответы

Установка Homebrew

Для варки

"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Установка узла & npm

Вы НЕ ДОЛЖНЫ использовать brew для установки узла и npm.

Я видел несколько мест, в которых предлагалось использовать Homebrew для установки Node (например, ответ alexpods и в этом посте в блоге Team Treehouse), но при установке этого способа вы более склонны сталкиваться с проблемами, так как npm и brew являются менеджерами пакетов и у вас должен быть менеджер пакетов, управляющий другим менеджером пакетов, это приводит к проблемам, таким как эта ошибка. Официальные проблемы с npm. Ошибка: отказ от удаления: /usr/local/bin/npm или это Невозможно удалить модуль npm в OSX.

Вы можете прочитать больше на эту тему в посте DanHerbert Исправление npm в Mac OS X для пользователей Homebrew, где он продолжает:

Кроме того, при установке Homebrew npm вам потребуется использовать sudo при установке глобальных пакетов. Поскольку одна из основных идей Homebrew заключается в том, что приложения могут быть установлены без предоставления им корневого доступа, это плохая идея.

Для всего остального

Я бы использовал npm; но вы действительно должны просто следовать инструкции по установке для каждого модуля, следуя инструкциям на сайте, так как они будут более осведомлены о любой проблеме или ошибке, чем кто-либо другой

Ответ 5

Если вы ранее установили node с помощью brew, у вас будет куча дополнительных файлов, которые вы должны очистить, прежде чем устанавливать node "правильный путь". Кроме того, мне пришлось добавить несколько параметров в мой запуск script, чтобы все было нормально.

Я написал script, чтобы сделать это легко.

# filename:  install-nvm-npm-node
# author:    Lex Sheehan
# purpose:   To cleanly install NVM, NODE and NPM
# dependencies:  brew

NOW=$(date +%x\ %H:%M:%S)
CR=$'\n'
REV=$(tput rev)
OFF=$(tput sgr0)
BACKUP_DIR=$HOME/backups/nvm-npm-bower-caches/$NOW
MY_NAME=$(basename $0)
NODE_VER_TO_INSTALL=$1
if [ "$NODE_VER_TO_INSTALL" == "" ]; then
    NODE_VER_TO_INSTALL=v0.12.2
fi
if [ "`echo "$NODE_VER_TO_INSTALL" | cut -c1-1`" != "v" ]; then
    echo """$CR""Usage:   $ $MY_NAME <NODE_VERSION_TO_INSALL>"
    echo "Example: $ $MY_NAME v0.12.1"
    echo "Example: $ $MY_NAME $CR"
    exit 1
fi
echo """$CR""First, run:  $ brew update"
echo "Likely, you'll need to do what it suggests."
echo "Likely, you'll need to run: $ brew update$CR"
echo "To install latest node version, run the following command to get the latest version:  $ nvm ls-remote"
echo "... and pass the version number you want as the only param to $MY_NAME. $CR"
echo "Are you ready to install the latest version of nvm and npm and node version $NODE_VER_TO_INSTALL ?$CR"
echo "Press CTL+C to exit --or-- Enter to continue..."
read x

echo """$REV""Uninstalling nvm...$CR$OFF"
# Making backups, but in all likelyhood you'll just reinstall them (and won't need these backups)
if [ ! -d "$BACKUP_DIR" ]; then 
    echo "Creating directory to store $HOME/.nvm .npm and .bower cache backups: $BACKUP_DIR"
    mkdir -p $BACKUP_DIR
fi 
set -x
mv $HOME/.nvm   $BACKUP_DIR  2>/dev/null
mv $HOME/.npm   $BACKUP_DIR  2>/dev/null
mv $HOME/.bower $BACKUP_DIR  2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Uninstalling node...$CR$OFF"
echo "Enter your password to remove user some node-related /usr/local directories"
set -x
sudo rm -rf /usr/local/lib/node_modules
rm -rf /usr/local/lib/node
rm -rf /usr/local/include/node
rm -rf /usr/local/include/node_modules
rm /usr/local/bin/npm
rm /usr/local/lib/dtrace/node.d
rm -rf $HOME/.node
rm -rf $HOME/.node-gyp
rm /opt/local/bin/node
rm /opt/local/include/node
rm -rf /opt/local/lib/node_modules
rm -rf /usr/local/Cellar/nvm
brew uninstall node 2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Installing nvm...$CR$OFF"

echo "++brew install nvm"
brew install nvm 
echo '$(brew --prefix nvm)/nvm.sh'
source $(brew --prefix nvm)/nvm.sh

echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc):$CR$OFF"
echo "export NVM_DIR=\"\$(brew --prefix nvm)\"; [ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"$CR"
NVM_DIR="$(brew --prefix nvm)"

echo """$CR""Using nvm install node...$CR"
echo "++ nvm install $NODE_VER_TO_INSTALL"
nvm install $NODE_VER_TO_INSTALL
NODE_BINARY_PATH="`find /usr/local/Cellar/nvm -name node -type d|head -n 1`/$NODE_VER_TO_INSTALL/bin"
echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc) and then restart your shell:$CR$OFF"
echo "export PATH=\$PATH:$NODE_BINARY_PATH:$HOME/.node/bin"

echo """$CR""Upgrading npm...$CR"
echo '++ install -g [email protected]'
npm install -g [email protected]
{ set +x; } &>/dev/null
echo "$REV""$CR""Insert following line in your $HOME/.npmrc file:$OFF"
echo """$CR""prefix=$HOME/.node$CR"
echo "Now, all is likley well if you can run the following without errors:  npm install -g grunt-cli$CR"
echo "Other recommended global installs: bower, gulp, yo, node-inspector$CR"

Я написал короткую статью здесь, в которой подробно объясняется, почему это "правильный путь".

Если вам нужно установить iojs, сделайте это, используя nvm, как это:

nvm install iojs-v1.7.1

Чтобы установить brew, просто просмотрите домашнюю страницу .

См. ответ alexpods для остальных.

Ответ 6

Я согласен с noa - если вам нужно иметь несколько версий node, io.js, тогда brew не является подходящим решением.

Вы можете помочь в поддержке бета-теста io.js в nvm: https://github.com/creationix/nvm/pull/616

Если вы просто хотите io.js и не переключаете версии, вы можете установить двоичный дистрибутив io.js из https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz; который включает npm, и вам не понадобится nvm, если вы не переключаете версии.

Не забудьте обновить npm после установки: sudo npm install -g [email protected]

Ответ 7

Вы должны установить node.js с nvm, так как вам не нужно предоставлять привилегии суперпользователя при установке глобальных пакетов (вы можете просто выполнить "npm install -g packagename" без добавления "sudo" ).

Brew является фантастическим для других вещей. Я склоняюсь к Bower, когда у меня есть возможность установить что-то с Bower.

Ответ 8

Вот что я делаю:

curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash
cd / && . ~/.nvm/nvm.sh && nvm install 0.10.35
. ~/.nvm/nvm.sh && nvm alias default 0.10.35

Для этого нет ни одного доморощенного.

nvm скоро будет поддерживать io.js, но не во время публикации: https://github.com/creationix/nvm/issues/590

Затем установите все остальное, для каждого проекта, с помощью package.json и npm install.

Ответ 9

Для установки с Zsh и Homebrew:

brew install nvm

Затем добавьте следующее в ~/.zshrc или в нужный файл конфигурации оболочки:

export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"

Затем установите версию узла и используйте ее.

nvm install 7.10.1
nvm use 7.10.1