ルートアクセスなしでNPM(ノードパッケージマネージャー)をどのように設定しますか?

StackOverflow https://stackoverflow.com/questions/3718968

  •  02-10-2019
  •  | 
  •  

質問

rootユーザーがStraighforwardとWorkdsとしてNPMを上げます。 rootとしてnpmコマンドを実行する必要がある場合を除き(推奨されません)。だから、私はそれを非ルートユーザーとしてセットアップしてみたと思った。

NPMのドキュメントによると、ルートアクセスのない非ルートユーザーは、次のことでnpmを設定できます。

  1. 作成 .npmrc でファイル root, binroot, 、 と manroot ユーザーが所有するフォルダーを指しています。
  2. 次に、インストールスクリプトを実行します。

わかった。インストールは大丈夫でした。

しかし、ノードはNPMが提供するパッケージを表示できません。

では、NPMが提供するパッケージをノードに認識させるにはどうすればよいですか? (以前にnpmをrootとしてインストールしたとき、私は何もする必要はありませんでした)。設定できます require.paths ノード内、または設定します NODE_PATH 環境変数、しかし何に?

ありがとう。

役に立ちましたか?

解決

少しの探索を通して、あなたはどちらもできるようです:

  1. あなたを設定します NODE_PATH NPMのルートディレクトリが何であれ、または
  2. ノードにいる間、呼び出します require.paths.push('path_to_npm_root')

他のヒント

これは私のために働いた:

  1. 作る ~/.node フォルダ

    mkdir ~/.node
    
  2. 編集 ~/.npmrc ラインを追加します

    prefix = ~/.node
    
  3. 編集します ~/.profile また ~/.bash_profile これらの行を追加します

    PATH="$HOME/.node/bin:$PATH"
    NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
    

今、私はようなことができます npm -g install http-server にインストールします ~/.node ルートなし。これを設置すると、タイプするときに http-server, 、それは実行されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top