Нодскул

Установить Node.js на macOS

Эта статья предназначена для новичков, и если вам что-то непонятно, то это баг, который нужно исправить! Напишите нам

Сама по себе установка Node.js несложная, но есть несколько нюансов, которые стоит учесть, чтобы было удобнее.

Начнём с того, что на машине, предназначенной для разработки, часто бывает полезно держать несколько версий Node.js — например, один проект требует старой версии Node.js, а в другом уже можно использовать более современную, или если захочется проверить, можно ли работает ли проект на новой версии.

Поэтому рекомендуемый способ: устанавливать Node.js при помощи отдельного инструмента, позволяющего переключаться между версиями, — nvm (расшифровывается как node version manager).

Чтобы его установить, нужно открыть терминал (мы рекомендуем iTerm2, но обычный Terminal.app тоже подойдёт). Для начала проверим, что установлен git:

  $ git --version
  git version 2.24.3 (Apple Git-128)
Что это значит?

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

Команды помечены как $ command-name, но знак доллара вводить не нужно — он помогает различить, где команды, которые нужно ввести, а где — результат. В этом примере git version 2.24.3 (Apple Git-128) — это вывод команды git --version.

Возможно, что появится диалог, предлагающий установить XCode Developer Tools — надо согласиться.

Внутри терминала автоматически запускается шелл (его ещё называют «оболочка») — программа, которая интерпретирует команды, которые вы вводите.

Почему терминал и шелл это не одно и то же?

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

Шелл же запускается на компьютере и может запускать другие программы, но не умеет рисовать текст или взаимодействовать с клавиатурой — это обязанности терминала.

Более правильная терминология для iTerm2 или Terminal.app — эмуляторы терминала, потому что они эмулируют настоящие устройства, чтобы шелл и прочие программы могли и дальше делать вид, что мы живём в семидесятых.

Одним из популярных настоящих терминалов был VT100.

Разные шеллы используют разные файлы для конфигурации. Apple поменяли шелл по умолчанию с bash на zsh в Catalina, и если вы не меняли шелл, то скорее всего у вас zsh — и файл конфигурации называется .zshrc

После этого установим nvm:

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

Что делает эта команда?

Разберём по частям: curl -o- URL запрашивает этот URL и выводит результат в стандартный вывод. Например, если вы попробуете выполнить curl -o- https://nodeschool.ru/posts/setup/macosx/, то увидите HTML-разметку этой статьи.

Символ | (его называют «пайп») даёт понять шеллу, что вы хотите перенаправить стандартный вывод первой команды в стандартный ввод следующей команды.

bash выполняет скрипт, пришедший в стандартный ввод.

Таким образом, curl cкачивает скрипт, а bash его выполняет.

Если выполнить только первую часть (curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh), то можно будет прочитать этот скрипт, чтобы понять, что он делает.

После установки nvm нужно перезапустить шелл — проще всего перезапустить терминал целиком.

И теперь у нас есть возможность установить Node.js с помощью nvm. --lts означает, что нас интересуют LTS-версии, которые дольше поддерживаются:

  $ nvm install --lts

Проверим, что всё установилось:

  $ node -e 'console.log(2 + 2)'
  4
  $ node -v
  v14.15.1

Так как nvm устанавливает Node.js в ~/.nvm/versions, то вы можете устанавливать модули из npm без использования sudo, например:

  npm install -g lighthouse

На этом всё!

Если что-то пошло не так — напишите нам или приходите в чат Нодскула, постараемся помочь.