Який запропонований спосіб встановити brew, node.js, io.js, nvm, npm на OS X?


175

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

і, сподіваємось, підтримує розвиток для:


9
Слід зазначити, що хоча ви попросили використовувати домашню мову. Використання homebrew для встановлення nvm не рекомендується. З github.com/creationix/nvm "Встановлення домашньої програми не підтримується. Якщо у вас виникли проблеми з встановленим домашнім мовою nvm, видаліть його, видаліть його та встановіть за допомогою наведених нижче інструкцій, перш ніж подавати проблему. . "
Ерік

Відповіді:


267
  1. Використання homebrewвстановлення nvm:

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

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

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

    Якщо у вас виникли проблеми з установкою nvmвикористанняbrew ви можете встановити його вручну (див тут )

  2. Використовуючи nvmвстановити nodeабо iojs(ви можете встановити будь-яку бажану версію):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
  3. npmдоставляється з node(або iojs), тому він буде доступний після встановлення node(або iojs). Ви можете оновити його до останньої версії:

    $ npm install -g npm@latest

    UPD Попередня версія була npm update -g npm. Дякуємо @Metallica за вказівку на правильний шлях (дивіться коментар нижче).

  4. Використання npmвстановлення ionic:

    npm install -g ionic
  5. Як щодо ngCordova: ви можете встановити його за допомогою npmабо bower. Я не знаю, який варіант вам більше підходить, це залежить від менеджера пакунків, який ви хочете використовувати для клієнта. Тому я опишу їх обох:

    1. Використанняnpm : Перейдіть до папки свого проекту та встановіть ng-cordovaу ній:

      npm install --save ng-cordova
    2. Використання bower : Встановіть ящик:

       npm install -g bower

      А потім перейдіть до папки свого проекту та встановіть ngCordovaу ній:

       bower install --save ngCordova

PS

  1. Для деяких команд може знадобитися привілей суперпользователя
  2. Короткий варіант npm install some_moduleєnpm i some_module

10
Якщо ви самі оновлюєте npm, НЕ використовуйте команду npm update. Рекомендований спосіб оновлення npm: npm install -g npm@latest(від brew info nodeі тут )
Javad Sadeqzadeh

10
Із поточної версії nvm install: "Зверніть увагу, що вище за темою попросили нас зробити явне управління nvm через Homebrew, вони не підтримуються ..." -> Тому, ймовірно, правильною відповіддю є не використовувати brew для nvm / node.js / io .js.
с.Даніель

7
Я отримував повідомлення про помилку "nvm не сумісний із параметром npm config" префікс ". згідно з цим сайтом ( github.com/creationix/nvm/issues/855#issue-109279804 ), NVM не сумісний з Homebrew. Я "заварив видалений nvm" і встановив nvm за допомогою команди CURL, і тепер повідомлення про помилку відсутнє.
YeeHaw1234

4
Я деякий час використовував nvm через brew, але також отримав повідомлення "вище ... явно ... непідтримується". Документи NVM прямо говорять: "Установка домашньої програми не підтримується. Якщо у вас виникли проблеми з встановленим домашньою мовою nvm, будь-ласка, заваріть видалення та встановіть його, використовуючи наведені нижче інструкції, перш ніж подавати проблему." Тож це, мабуть, більше не повинно бути прийнятою відповідь Я тільки почав використовувати n, який працює.
щозхатипат

3
Поточна версія NVM (v0.33.2) НЕ підтримує встановлення домашньої програми: Див.: Github.com/creationix/nvm/tree/v0.33.2#installation
Андреа Карраро

45

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

У більшості відповідей рекомендованим способом встановлення nvm є використання Homebrew

Не роби цього

На сторінці Github для nvm чітко викликано:

Встановлення домашнього перекладу не підтримується. Якщо у вас виникли проблеми з nvm, встановленим homebrew, будь-ласка, заваріть видалення та встановіть його, використовуючи наведені нижче інструкції, перш ніж подавати проблему.

Замість цього використовуйте наступний метод

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

Чисті та клопоти безкоштовно. Це також позначить це як вашу версію вузла за замовчуванням, тому вам слід налаштувати все


2
Я думаю, ви також nvm install --ltsмогли отримати останній LTS
skube

1
Дякую, що ви підняли це, я спустив жахливу кролячу нору з nvm та домашньою мовою і просто з'явився ...
cssidy

Хороша відповідь! Після великої кількості читання (вузол Установки можуть бути мінним полем), я просто заварити Uninstalled вузла, очищені всі і використовував NVM для установки вузла на Мохаве 10.14.4: stackoverflow.com/q/55735701/123033
Dave Everitt

13

Я використовую n (керування версіями вузла)

Встановити його можна двома способами

brew install n

або

npm install -g n

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

$ n

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

2
Ви можете додати третій спосіб встановлення, який є безболісним і залишає зручну утиліту для видалення, якщо вона вам потрібна - github.com/mklement0/n-install Цей метод пропонується в n документах на сайті github.com/tj/n
whatsthatitspat

1
Слід також зазначити, що якщо ви плануєте одночасно запускати різні версії вузлів для різних проектів (наприклад, у двох різних вікнах терміналів), nvm є кращим вибором, оскільки він перемикає лише шляхи до вузла в кожному сеансі.
Nilloc

10

Я дуже спізнився з цим, але мені не сподобалися інші відповіді

Встановлення Homebrew

Для заварювання бігайте

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

Встановлення вузла & npm

Ви НЕ ПОВИННІ використовувати brewдля установки вузла і НПМ .

Я бачив у кількох місцях, що пропонують використовувати Homebrew для встановлення вузла (як відповідь alexpods та в цьому блозі Team Treehouse blog ), але встановивши таким чином, ви більш схильні до виникнення проблем, як npmі brewобидва менеджери пакунків, і вам слід мати менеджер пакунків керувати іншим менеджером пакунків, це призводить до проблем, наприклад, ця помилка офіційних проблем npm Помилка: Відмова від видалення: / usr / local / bin / npm або не вдається видалити модуль npm на OSX

Більше про цю тему можна прочитати у публікації DanHerbert Fixing npm on Mac OS X for Homebrew Users , де він продовжує говорити

Крім того, використання Homebrew установки npm вимагатиме використання sudo під час встановлення глобальних пакетів. Оскільки однією з основних ідей Homebrew є те, що програми можна встановлювати, не надаючи їм кореневого доступу, це погана ідея.

Для всього іншого

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


Тож ви пропонуєте просто встановити його з їх завантаження?
Шон Мклін

6

Якщо ви раніше встановили вузол за допомогою варіння, то у вас з'явиться купа додаткових файлів, які слід очистити перед установкою вузла "правильним способом". Крім того, мені довелося додати кілька налаштувань до мого сценарію запуску, щоб зробити роботу безперебійною.

Я написав сценарій, щоб зробити це легко.

# 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 npm@latest'
npm install -g npm@latest
{ 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

Щоб встановити варити, просто перегляньте його домашню сторінку .

Дивіться відповіді алексоподів.


5
Приємно бачити, що всі ці менеджери пакунків та менеджери версій справді допомагають видалити власні написані сценарії, хаки та обхідні шляхи, щоб заставити Techstack xyz працювати. приголомшливий
Майкл Трув

Працював для мене, хоча я починав з npm і варив обох розбитих
Chris F Carroll

5

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

Однак Brew є фантастичним для інших речей. Я схильний бути упередженим по відношенню до Bower, коли я маю можливість встановити щось із Bower.


Встановлення вузла за допомогою nvm зараз є моїм кращим підходом. З очевидних причин того, що я можу мати кілька версій вузла на своїй машині, а також мені не потрібно виконувати npm за допомогою sudo. Я написав повідомлення в блозі garywoodfine.com/install-nodejs-nvm-osx, пояснюючи, як встановити
Gary Woodfine

4

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

Ви можете допомогти підтримці бета-тесту 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 npm@latest


3

Ось що я роблю:

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/isissue/590

Потім інсталюйте все інше, за проектом, з package.jsonта npm install.


0

Для встановлення з 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.