Установка Node.js и npm

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

Установка в Elementary OS, Ubuntu:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

Установка в Debian:

curl -sL https://deb.nodesource.com/setup_14.x | bash -
apt-get install -y nodejs

Инструкции под разные системы и для разных версий от разработчиков.

Проверка версий:

nodejs -v
npm -v

Если для проекта вы делаете:

npm install

И вылезает ошибка, вроде:

gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/.../node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:311:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Linux 5.3.0-42-generic
gyp ERR! command "/usr/bin/node" "/home/.../node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /home/.../node_modules/node-sass
gyp ERR! node -v v12.16.1
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
Build failed with error code: 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@4.10.0 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the node-sass@4.10.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/d1mon/.npm/_logs/2020-03-31T05_52_52_174Z-debug.log

Необходимо удалить каталог node_modules и файл блокировки package-lock.json, очистить кэш и пробовать заново:

rm -rf node_modules package-lock.json
npm cache clean --force
npm install

Глобальная установка пакетов

Для глобальной установки пакетов в команду добавляется параметр -g. Но это не будет работать по умолчанию из-за проблем с правами доступа, поэтому предварительно требуется сделать следующее.

Создадим каталог для глобальных установок:

mkdir ~/.npm-global

Настройка npm на использование нового каталога:

npm config set prefix '~/.npm-global'

В файл ~/.profile необходимо добавить строку:

export PATH=~/.npm-global/bin:$PATH

В командной строке снова, для применения изменений:

source ~/.profile

На этом все, теперь можно устанавливать пакеты глобально.

Комментарии