Mengatasi npm error ./postinstall.js - error storing binary to local file Error: EACCES: permission denied
Jika anda menggunakan sistem operasi Linux atau Mac, mungkin anda pernah mengalami error npm error ./postinstall.js - error storing binary to local file Error: EACCES: permission denied , padahal anda sudah menggunakan sudo atau root.
Berikut ini adalah contoh pesan error-nya
node ./postinstall.js
ngrok - downloading binary https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
ngrok - error storing binary to local file { Error: EACCES: permission denied, open '/usr/lib/node_modules/...'
errno: -13,
code: 'EACCES',
syscall: 'open',
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ngrok@2.2.24 postinstall: `node ./postinstall.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ngrok@2.2.24 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Error ini dikarenakan pada saat script postinstall dijalankan, npm menggunakan user nobody dan bukan user yang saat itu digunakan, dalam hal ini adalah root karena menggunakan sudo.
Solusi dari error ini ternyata sangat mudah, yaitu dengan menambahkan flag/argumen --unsafe-perm
Contoh, jika awalnya adalah :
sudo npm install -g @shoutem/cli
maka diubah menjadi :
sudo npm install -g @shoutem/cli --unsafe-perm
Apakah fungsi dari flag/parameter --unsafe-perm ? Silahkan cek langsung pada tautan di bagian bawah.
unsafe-permDefault: false if running as root, true otherwiseType: BooleanSet to true to suppress the UID/GID switching when running package scripts. If set explicitly to false, then installing as a non-root user will fail.
Selamat mencoba.
Sumber : https://docs.npmjs.com