簡體   English   中英

npm卡在舊版本上,但似乎有多個版本

[英]npm stuck on old version, but seem to have multiple versions

我想更新npm,但是好像我有2個版本,我不確定如何最好地解決它,所以我只有一個。

我現在的主要問題是我有一些較老的約曼發電機
/Users/me/.npm-packages/lib/node_modules/
但較新的版本已進入/Users/me/.npm-global/lib/node_modules/

當我運行yo ,只會找到較舊的發電機。

我想將所有全局安裝的軟件包都放在一個用戶的某個位置,並且我不需要偽裝不需要的東西。

似乎我在/Users/me/.npm-packages/bin/npm有節點,也許還有/usr/local/bin/npm節點。 我進入了兩個目錄,並在兩個目錄中都更新了npm,但是它仍然返回2.11.2,而不是它聲稱已安裝的3.8.6。 這是我已經嘗試解決的一些CLIING:

➜  ~ which npm
/Users/me/.npm-packages/bin/npm
➜  ~ sudo which npm
/Users/me/.npm-packages/bin/npm
➜  ~ npm install npm@latest
npm@3.8.6 node_modules/npm
➜  ~ npm -v
2.11.2
➜  ~ npm install -g npm@latest
npm ERR! Darwin 15.3.0
npm ERR! argv "/usr/local/bin/node" "/Users/me/.npm-packages/bin/npm" "install" "-g" "npm@latest"
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 npm@latest
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@3.8.6 /usr/local/lib/node_modules/npm
➜  ~ npm -v
2.11.2

我也嘗試安裝NVM和內部安裝它的最新版本故宮的描述在這里

我的.zshrc將PATH變量設置為:

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

想要使用當前節點並標准化我的軟件包的位置,並且可以將所有內容都刪除掉以便正常工作。 希望對那些比我了解更多這些東西的人容易診斷。

運行which npm 您會發現npm可執行文件位於/usr/local/bin/npm 此位置歸root所有。

然而, 全局包 (即包安裝使用-g選項)位於由您設置的位置.zshrc第1行(是的,NPM_PACKAGES = /用戶/我/ .npm-包)。

要禁用本地的 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 npm@latest

最后,刪除.zshrc上的注釋標記。

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

在用戶文件夾中安裝全局軟件包的同時,您將獲得最新的npm可執行文件,因此不需要使用sudo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM