web-dev-qa-db-ja.com

npm install -g lessが機能しない

私は、保存時に.lessファイルを.cssにコンパイルできるように、phpstormの設定を少なくしようとしています。私はnode.jsと次のステップをインストールしました(これによると .html )が端末でこのコマンドを実行しています

npm install -g less

しかし、これを実行すると、これらのエラーが発生します

☁  ~  npm install -g less
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/mkdirp/0.5.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/graceful-fs/3.0.8'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/extend/3.0.0'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/readable-stream/2.0.4'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/chalk/1.1.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/xtend/4.0.1'
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
/usr/local/lib
└─┬ [email protected]
  ├─┬ [email protected]
  │ └── [email protected]
  ├── [email protected]
  ├── [email protected]
  ├─┬ [email protected]
  │ └── [email protected]
  └─┬ [email protected]
    └── [email protected]

npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.6
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/brentscholl/npm-debug.log

私はここで完全な人で、次に何をするべきかわからない。任意の助けは非常に高く評価されるでしょう!

115
xslibx

Sudoを使用することはお勧めできません。それは後であなたに許可問題を与えるかもしれません。上記のように動作しますが、rootが所有するフォルダをユーザーが書き込み可能に変更するのは好きではありませんが、複数のユーザーにとって問題になる可能性があります。これを回避するには、 'npm users'というグループを使用することができますが、これも管理上のオーバーヘッドが大きくなります。ドキュメントから許可を処理するオプションについては、こちらを参照してください。 https://docs.npmjs.com/getting-started/fixing-npm-permissions

私は選択肢2に行きます:

パーミッションエラーの可能性を最小限に抑えるために、別のディレクトリを使用するようにnpmを設定できます。この例では、ホームフォルダの隠しディレクトリになります。

グローバルインストール用のディレクトリを作成します。

 mkdir ~/.npm-global

新しいディレクトリパスを使用するようにnpmを設定します。

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

〜/ .profileファイルを開くか作成して、次の行を追加します。

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

コマンドラインに戻り、システム変数を更新します。

 source ~/.profile

テスト:Sudoを使わずにパッケージをグローバルにダウンロードします。

npm install -g jshint

それでもパーミッションエラーが表示される場合は実行してください(mac os):

Sudo chown -R $USER ~/.npm-global   

これは以下のデフォルトのubuntuインストールで動作します。

Sudo apt-get install nodejs npm

より柔軟にバージョンを管理したい場合はnvmをお勧めします。 https://github.com/creationix/nvm

MacOSの場合は、brewを使用します。最近のSudoバージョンを使用している場合は、そのままでnpmを使用しなくても機能します。楽しい :)

175
Vincent Gerris

ターミナルウィンドウでこれらのコマンドを実行してください(注意:$ USERの部分を置き換えてはいけません。

Sudo chown -R $USER ~/.npm
Sudo chown -R $USER /usr/lib/node_modules
Sudo chown -R $USER /usr/local/lib/node_modules
67

パーミッションエラーを回避するために、Node Version Mangerを使用してnodeおよびnpmを再インストールします( npmドキュメントに記載 )。

OSXの場合:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

またはこの記事に従ってください:

http://dev.topheman.com/install-nvm-with-homebrew-to-use-multiple-versions-of-node-and-iojs-easily/ /

Windowsユーザーは nvm-windows をインストールするべきです。 nvmのインストール方法については、 nvm readmeを参照してください。

それから例えば選びなさい:

nvm install 8.0.0
nvm use 8.0

今、あなたは別の試みをすることができます:

npm install -g less
8
gazdagergo

Mac OS X Answer

Node_modulesディレクトリへの書き込みアクセス権がありません

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules

書き込みアクセス権を持つディレクトリにユーザーを追加します

  1. Node_modulesを含むフォルダーを開く

    / usr/local/lib /を開きます

  2. Node_modulesフォルダーでcmd + Iを実行して、許可ダイアログを開きます
  3. ユーザーを追加して、共有およびアクセス許可セクションで読み取りおよび書き込みアクセスを許可します enter image description here
8

Sudo -iを使用して$ rootに切り替えてから、npm install -g xxxxを実行します。

3
user3393929