Dskr.dev

English

18 сент. 2023

Редактировать

Как правильно установить node.js окружение?

Установка Node.JS

Существует несколько способов установки Node.JS и сложно понять какой из них лучше. В этой статье мы сравним разные способы (прямая установка, системные пакетные менеджеры, nvm, n, nodenv, volta, fnm). TLDR: я предпочитаю использовать fnm

Самый простой вариант установить Node.JS это пойти на nodejs.org и скачать установщик. Но это не лучшая идея. Вариант чуть получше, воспользоваться системным пакетным менеджером(brew, apt, dnf). В обоих случаях нельзя быстро сменить версию Node.JS. Часто актуальный проект требует свежую LTS версию, легаси проект работает под предыдущим LTS, а так же хочется попробовать новые фишки из Current версии.

Самое популярное решение это Node Version Manager nvm. Но, во-первых, он невероятно медленный. Каждое открытие консоли с установленным nvm будет занимать до нескольких секунд. Во-вторых, он не поддерживает fish и windows. В-третьих, глобально установленные пакеты прийдётся ставить каждый раз заново, либо нужно прописывать их в специальном файле. n и nodenv имеют примерно те же проблемы.

Следующее решение это Volta. Написано на Rust, а значит должно быть быстрым. Поддерживает fish и даже windows. Глобально установленные библиотеки работают даже после смены версии. Но не поддерживается .nvmrc/.node-version файлы, хотя на замену тут предлагается писать версию ноды в package.json. Ещё из недостатков, поддержка pnpm находится в экспериментальном режиме.

И наконец Fast Node Manager fnm. Написан также на Rust. Работает быстро и поддерживает всё что надо. Устанавливается fnm одной командой:

curl -fsSL https://fnm.vercel.app/install | bash

Далее можно установить версию Node.JS которая будет использоваться по умолчанию:

fnm default 18

Теперь можно добавить в проект файл .node-version с указанием версии Node.JS, которая будет использоваться в этом проекте.

echo 18.17.0 > .node-version

При открытии консоли в папке с проектом, fnm автоматически включит нужную версию Node.JS.

Есть небольшой недостаток, если в проекте указана версия Node.JS которая не установлена, автоматически она не установится, но при открытии консоли отобразится ошибка. Для установки нужной версии нужно будет ввести целых две команды

fnm install
fnm use

Установка pnpm/yarn

Node.JS, начиная с версии 16.13, получил поддержку Corepack. Эта утилита позволяет использовать любой поддерживаемый пакетный менеджер без ручной установки. Всё что нужно сделать, это включить corepack:

corepack enable

После чего при первом использовании pnpm/yarn они автоматически установятся и будут работать.