2016-04-19 8 views
0

npmを更新したいのですが、2つのバージョンがあるようですが、解決方法がわかりません。npmは古いバージョンでスタックしていますが、複数のバージョンがあるようです

私の主な問題は、今私が

/Users/me/.npm-packages/lib/node_modules/で一部の古いヨーマン・ジェネレータを持っているが、新しいものは私がyoを実行すると、それだけで古い発電機を見つけることだ /Users/me/.npm-global/lib/node_modules/

に入ってきました。

グローバルにインストールされたすべてのパッケージを1人のユーザーの下の1か所に置いておきたいと思っています。

ノードが/Users/me/.npm-packages/bin/npmにあり、おそらくは/usr/local/bin/npmにあるようです。私は両方のディレクトリに行って、両方でnpmを更新しましたが、インストールしていると主張している3.8.6ではなく、2.11.2を返します。ここで私が修正しようとするために行われてきたいくつかのCLIingは次のとおりです。

➜ ~ which npm 
/Users/me/.npm-packages/bin/npm 
➜ ~ sudo which npm 
/Users/me/.npm-packages/bin/npm 
➜ ~ npm install [email protected] 
[email protected] node_modules/npm 
➜ ~ npm -v 
2.11.2 
➜ ~ npm install -g [email protected] 
npm ERR! Darwin 15.3.0 
npm ERR! argv "/usr/local/bin/node" "/Users/me/.npm-packages/bin/npm" "install" "-g" "[email protected]" 
npm ERR! node v5.10.1 
npm ERR! npm v2.11.2 
npm ERR! path /usr/local/lib/node_modules/npm 
npm ERR! code EACCES 
npm ERR! errno -13 
npm ERR! syscall rmdir 

..etc 
➜ ~ sudo npm install -g [email protected] 
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js 
[email protected] /usr/local/lib/node_modules/npm 
➜ ~ npm -v 
2.11.2 

説明したように、私はまた、NVMを設置し、その中にNPMの最新バージョンをインストールしてみましたhere

マイ.zshrcはに設定PATH変数があります。

NPM_PACKAGES=/Users/me/.npm-packages 
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH" 
PATH="$NPM_PACKAGES/bin:$PATH" 

現在のノードを使用し、私のパッケージがどこにあるのかを標準化して、すべてを吹き飛ばして正常に動作するようにします。これを期待するのは、Iよりもこのことについてもっと知っている人のために診断することです。

+0

グローバルインストールの方が快適でしょうか? 両方のバージョンをインストールする必要がありますか? – pandres95

+0

2つのグローバルバージョンをインストールしたかったことは一度もありませんでした。主なことは、私がrootではなく私が所有しているかどうかを確認したいということです。必要なものがあれば、私はグローバルなものを行うために 'sudo'する必要はありません。 – Damon

+0

多分あなたはグローバルにインストールされたバージョンを使用しています。しかし、グローバルパッケージレジスター( 'NPM_PACKAGES'変数)はユーザーの中にあります。ことはできないし、 'sudo npm i -g npm @ latest'です。その後、ローカルの 'NPM_PACKAGES'変数を再び有効にします。 – pandres95

答えて

1

実行which npm。あなたは実行ファイルが/usr/local/bin/npmにあるnpm実行ファイルであることがわかります。この場所はrootによって所有されています。

はしかし、あなたのグローバルパッケージ(あなたが-gオプションを使用してインストールすなわちパッケージ)が行1(はい、NPM_PACKAGES = /ユーザ/ ME/.npm-パッケージ)でお.zshrcによって設定された場所に位置しています。

NPM_PACKAGESあなたローカルのを無効にするには、ちょうどあなたの.zshrcファイルに関連する行をコメントアウトします。

# NPM_PACKAGES=/Users/me/.npm-packages 
# NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH" 
# PATH="$NPM_PACKAGES/bin:$PATH" 

その後、最新の(必要にsudo) NPMのバージョンをインストールします。

npm install -g [email protected] 

最後に、.zshrcのコメント記号を削除します。

NPM_PACKAGES=/Users/me/.npm-packages 
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH" 
PATH="$NPM_PACKAGES/bin:$PATH" 

あなたは自分のユーザーフォルダにグローバルなパッケージのインストール中に、最新のnpm実行可能になってしまいますので、sudoを使用するのが必要とされることはありません。

+0

Hm ..私はそれらのNPM/Node行をコメントアウトし、 'sudo install -g npm @ latest'を実行し、それがうまくインストールされたと言いますが、後で' npm --version'は2.11.2です。 私のzshrcにこれらのパスは必要ありません。 – Damon

+0

この 'npm'設定がどこにあるのかを知るには、' which npm'とタイプしてください。次に、これを整理します。 – pandres95

関連する問題