2017-09-11 11 views
0

--unsafe-perm--build-from-source引数を使用してインストールする必要があるノードserialportライブラリを使用しています。私はserialportをインストールするときにそれらの引数を使用したいだけです。私はそれが正常に動作し、コマンドラインで次のように実行した場合:this postに基づいてpackage.jsonにモジュールのインストール引数を含める

sudo npm install [email protected] --unsafe-perm --build-from-source 

を、私の理解では、あなたがそうのように、preinstallスクリプトを使用していることを達成することである。しかし

"preinstall": "sudo npm install [email protected] --unsafe-perm --build-from-source" 

、I私は、コマンドでsudoを指定したものの

npm ERR! Error: EACCES: permission denied, mkdir '/Users/test/node_modules/.staging' 
npm ERR!  at Error (native) 
npm ERR! { Error: EACCES: permission denied, mkdir '/Users/test/node_modules/.staging' 
npm ERR!  at Error (native) 
npm ERR! errno: -13, 
npm ERR! code: 'EACCES', 
npm ERR! syscall: 'mkdir', 
npm ERR! path: '/Users/test/node_modules/.staging' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

だから、それはルートイベントとして実行されていない:「私がいることを実行すると、次のエラーを取得mの?

これらのフラグを使用してserialportpackage.jsonをインストールするにはどうすればよいですか?

答えて

0

さて、これは理解するのにはしばらく時間がかかりましたが、今はそれを得ると思います。

それはあなたがrootとして実行されているpreinstallpostinstallスクリプトが含まれているpackage.jsonファイルを持っている場合、npmが減少権限でこれを実行することが判明しました。スクリプトをrootとして実行させるには、--unsafe-permsフラグを含める必要があります。あなたが.npmrcルートを行く場合は、--unsafe-permを指定する必要はありません

unsafe-perm = true 

:だから、長いと短いが、あなたが

sudo npm i --unsafe-perm 

を実行する必要があるか、このエントリーで.npmrcファイルを作成することができるということですコマンドラインで

もちろん、これはすべて、ルートとしてnpm iを実行している場合にのみ必要です。これは本当に安全ではありません。したがって、通常のユーザーを作成し、パッケージをインストールする直接のユーザーに完全にアクセスできるようにする場合は、--unsafe-permについて心配する必要はありません。

--build-from-sourceについては、electron-rebuildがあなたの環境に適したパッケージをダウンロードできないことを認識した場合には、あなたのためにそれが構築されるため、心配する必要はありません。

関連する問題