[英]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.