Я предпочитаю устанавливать nodejs при помощи программы nvm. У этого подхода есть куча преимуществ для любого разработчика:
- nodejs, npm и глобальные npm модули устанавливаются в отдельную папочку в домашнем каталоге пользователя и не засоряют систему.
- можно установить несколько версий nodejs одновременно, причем каждая из версий будет иметь свой собственный набор глобально установленных пакетов. Это уочень удобно если Вы работаете над несколькими проектами и каждый использует свою собственную версию ноды.
- легко устанавливать и удалять новые версии ноды и при этом не влиять на уже установленные.
Надеюсь убедил.
Итак, перво на перво устанавливаем nvm. Я для этого использую команду:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
После установки пробуем запустить:
nvm --version
Очень часто (у меня всегда) этот вызов завершится ошибкой. Мол, нет такой команды. Связано это с тем, что программа установилась в домашний каталог пользователя и bash или другой интерпретатор не может пока ее найти. Замечу, если перезагрузить компьютер (чего я обычно не делаю месяцами), или зупустить новый терминал, или разлогиниться и войти в систему заново, то все начнет работать как надо.
При выполнении инсталляционного скрипта происходит запись в конфигурационные файлы интерптетатора, но эти файлы считываются только после перелогина (для псевдотерминалов) или при новом запуске терминала (при новом логине пользователя). Запись в конфиге выглядит так:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Добавляется это в файл .bashrc на Linux и в .zshrc на MacOS. На маке есть еще проблема с тем, что файл может отсутствовать и в этом случае установочный скримт ничего никуда не добавит. Если у Вас на компьютере с MacOS отсутвтсует файл .zshrc, то надо просто выполнить в терминале команду:
touch ~/.zshrc
для его создания и перезапустить инсталляцию или просто вставить необходимы три строчки вручную.
Хорошо, файл .bashrc или .zshrc (или что там у Вам :) ) в домашнем каталоге есть, и вышеуказанные три строчки в этом файле присутствуют. Перезагружаться или перелогиниваться лень, можно ли как-то выкрутиться. И таки да - можно. Для этого просто вглядываемся в код:
export NVM_DIR="$HOME/.nvm"
Здесь создается и экспортируется переменная окружения NVM_DIR, в которой находится путь к каталогу nvm Две другие строчки просто проверяют наличие в этом каталоге скриптов и если они есть запускают их. Все это можно сделать самостоятельно и без перезагрузки компьютера, но придется делать для каждого терминала в отделности. Вся магия с добавлением трех строчек в конфиги интерпретатора нужна для того, чтобы все происходило автоматически и всегда.
Сложный путь выполнить в терминале указанные три команды поочередно. Простой путь выполнить весь RC файл при помощи правильного интерпретатора (для bash):
bash ~/.bashrc
После этого nvm заработает.
Устанавливать ноду с использованием nvm это просто песня. Сначала нужно посмотреть какие версии ноды доступны в репозитории:
nvm ls-remote
Увидим длиннющий список, LTS версии отдельно помечены. Устанавливаем нужную версию, например, v12.20.1:
nvm install v12.20.1
Установится нода версии v12.20.1 и станет версией по умолчанию. После этого можно установить другую версию, третью и т.д. Чтобы переключиться на нужную версию используется команда:
nvm use v12.20.1
Проверить, установлена ли nodejs и какая версия активна можно командой:
node --version
Чтобы сделать какую-то версию ноды версией по умолчанию используейте команды:
nvm alias default v12.20.1
nvm alias default node
Первая из них устанавливает верию 12.20.1 как версию по умолчанию (после перезагрузки компьютера она будет использоваться для всех программ)
Вторая - устанавливает версией по умолчанию самую старшую из установленных в системе.
Минимальная конфигурация:
Настройка горячей перезагрузки:
Настройка сборки проекта с подгрузкой файлов css/scss/изображений:
Модульный принцип конфигурации проекта:








