Tanio

Run NPM Without Root Access

30 Apr 2023

2 min read


Introduction

NPM menginstal paket secara lokal di dalam proyek Anda secara default. Anda juga dapat menginstal paket secara global (mis. npm install -g ) (berguna untuk aplikasi baris perintah). Namun sisi negatifnya adalah Anda harus menjadi root (atau menggunakan sudo) untuk dapat menginstal secara global.

Berikut adalah cara untuk menginstal paket secara global untuk pengguna tertentu tanpa memerlukan akses root.

NPM permission error
Contoh NPM error saat instalasi package karena tidak diberi access root

Setup Global Package Directory

Create Directory

Buat direktori (folder) tempat global package:

mkdir "${HOME}/.npm-packages"

Configure NPM

Setting NPM ke direktori global package:

npm config set prefix "${HOME}/.npm-packages"

Environment Configuration

Update Shell Configuration

Tambahkan konfigurasi pada ~/.bashrc atau ~/.zshrc:

NPM_PACKAGES="${HOME}/.npm-packages"

export PATH="$PATH:$NPM_PACKAGES/bin"

# Preserve MANPATH if you already defined it somewhere in your config.
# Otherwise, fall back to `manpath` so we can inherit from `/etc/manpath`.
export MANPATH="${MANPATH-$(manpath)}:$NPM_PACKAGES/share/man"

Load New Configuration

Load path yang sudah di tambahkan:

source ~/.bashrc

Verification

Setelah konfigurasi selesai, Anda dapat menginstal package global tanpa sudo:

npm install -g package-name

Package yang terinstal akan tersimpan di direktori ~/.npm-packages dan dapat diakses melalui PATH yang sudah dikonfigurasi.