当我做一个npm -v
时,我看到我仍然在5.6.0上。并不断收到提示以执行npm i npm
。
但是我已经做了一个sudo npm install npm@latest -g
并与npm outdated -g --depth=0
仔细检查,以查看我的全局 npm 已经是最新的 (6.0.0)。
如何解决此冲突?我使用的 npm 是最新的还是旧的?是因为我的全局链接不正确还是什么?
尝试关闭终端 - 一旦再次打开它,它应该可以工作,对我很好。
*IvanD在原始帖子的评论中写了这个解决方案,我认为值得回答。
我可以 100% 保证这是有效的。
我从教节点.js的人那里得到了这个。
尝试一下 NVM(节点版本管理器)。 按以下顺序执行命令:
-
卷曲 -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
-
命令 -v nvm
-
NVM 安装节点
最后确认更新成功
- npm -v
如果所有提及方法都对您没有帮助,让我们做一个更好的解决方案:
您需要安装nvm
(节点版本管理器)
之后只需运行:
nvm install 14
列出您的版本以查看是否已安装版本
nvm ls
你会得到这样的列表:
v10.2.0
v12.18.3
-> v14.10.0
system
default -> 14.10.0 (-> v14.10.0)
node -> stable (-> v14.10.0) (default)
stable -> 14.10 (-> v14.10.0) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/erbium (-> v12.18.3)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.22.0 (-> N/A)
lts/erbium -> v12.18.3
像这样切换默认版本:
nvm alias default 14.10.0
并检查:
node -v
如果打印v14.10.0
,您已经准备好摇滚了,如果没有:
nvm use 14
并再次检查。
这需要像魅力一样工作,你会很高兴。
检查您的/usr/local/lib
文件夹。我遇到了同样的问题,这里有一个node_modules
文件夹。删除它并重新运行[sudo] npm install npm@latest -g
后,它显示并使用了正确的版本。
sudo npm install -g n
如果你想要最新的稳定版本
sudo n stable
如果您想要最新版本
sudo n latest
然后重新启动计算机
我今天在节点安装程序 node-v10.16.0-x64.msi 上遇到了这个问题。即使在安装它之后,我也从 npm -v 获得了 3.10 的节点版本......我的反应应用程序将无法启动:(
似乎节点在 %AppData%\Roamingpm 的 APPDATA 中创建了一个文件夹 有一个旧的npm.exe躺在那里,这是我的用户级别的Windows路径。用户级别路径将覆盖新安装程序添加其路径的系统级别路径。用户覆盖导致找不到新的 npm。解决方案:移位-删除 %应用数据%\漫游pm ! :D使用 node-v10.16.0-x64 删除并重新安装.msi
现在 npm -v 给出 6.9.0!
如果您尝试了所有提到的方法,例如:- sudo npm install -g n 须藤 n 稳定
或
sudo npm install npm@latest -g 仍然 npm -v 向您显示旧版本,一旦尝试关闭终端并打开一个新终端并检查。
虽然这是一个老问题,答案可能无关紧要,但我发现自己多次遇到这种情况,有时重新启动服务器不是解决方案,因为其他过程会受到影响。因此,您需要在不实际重新启动服务器的情况下刷新终端,为此您可以运行exec bash
,这肯定会有所帮助。
我找到了这个对我有用的命令行。
从版本12.18
更新到最新版本15.2
正确。
我希望这是有用的:
nvm install node --reinstall-packages-from=node
我遇到了类似的问题。我在 ubuntu 14.15.4 上安装了节点 v18,但是当我使用node -v
时,它显示了 v11.0.0。 要使用 nvm 检查系统上可用的所有节点版本,请使用
nvm ls
要将新安装的节点版本设置为默认版本,请使用
nvm alias default <version>
然后,只需关闭终端并打开一个新终端即可检查节点版本。
问题摘要
npm -v # 6.xx
npm install npm@latest -g
npm -v # still the same, but should be 7.xx
基于fypnlp答案的解决方案。
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
终端现在想要配置一些~/.zshrc
文件,而我的Mac上还没有该文件。所以让我们创建它
nano ~/.zshrc
和粘贴
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
现在重新启动终端并运行
command -v nvm # should return "nvm"
nvm install node
npm -v # now it’s 7.xx yay!
我认为您的问题已经填满并且已经有了答案。 首先,根据官方文档,节点 8.11.1 (LTS) 和节点 10.0.0(当前最新版本)的 LTS 和当前版本的 NPM 都是 5.6.0。
否则,sudo npm install npm@latest -g
应全局安装最新版本的 NPM。
在主目录中搜索node_modules文件夹,重命名或删除它,然后重试。
-
首先从控制面板\所有控制面板项\程序和功能中卸载已安装的nodejs。
-
从程序文件 (x86) 文件夹中删除 nodejs 文件夹。
-
现在安装新版本并检查一次。
我今天遇到了同样的错误。更新的 npm 版本不反映。
这就是我解决它的方式。
-
很多帖子建议使用命令 npm 缓存清理 --f。但是,它对我不起作用。因此,我从位置C:\Users\SearchYourUserName\AppData\Roaming中删除了"npm"和"npm-cache"文件夹。
-
已卸载现有节点。
-
重新安装的节点版本 v10.x.x。我从 https://nodejs.org/dist/latest-v10.x/下载了node-v10.22.1-x64.msi文件并安装了它。
然后检查了 npm 版本。它奏效了。
实际上,这可能是由于错误造成的,例如您使用yarn
安装软件包,例如:
// update the version number in package.json then
yarn install
并尝试使用类似npm
运行脚本
npm run start
实际上我犯了这个错误。 因此,请确保使用yarn
或npm
,但不要两者兼而有之。
我有同样的症状,但没有一个答案有帮助,我终于找到了这个问题。 它可能与OP不完全相同,但我认为它是相同的。@Kelvin赵的卸载和重新安装解决方案对他有用,但对我不起作用,所以这可能对其他人有用。
我的问题是我最终使用brew和(我不记得确切如何),但我似乎在brew Celler中有一个旧版本。 Brew不知道这件事,或者不能告诉我,因为我做一个brew uninstall node
它说它不存在。 当我运行node -v
或npm -v
时,我会得到旧版本。
我使用brew
和npm
卸载并重新安装,sudo npm
等没有这样做。 它显示了正在安装的正确版本,但node -v
仍然显示旧的版本。
原来我的/usr/local/Celler
目录中有一个名为node@14
的版本。
所以运行brew uninstall node@14
摆脱了它,现在 node -v 不再工作了。
现在重新安装节点可以工作。brew install node
更多信息,为感兴趣的人提供更多详细信息。
我想找出我仍然安装了节点的位置,所以我做了echo $PATH
因为它必须在路径中的某个地方node -v
不会被识别。
原来我的路径上有/usr/local/opt/node@14
(与/usr/local/Celler/node@14
有关)
我就是这样找到的。 现在我想我记得它是如何到达那里的。我 90% 确定我做了 node 的升级,brew 问如何处理旧版本,我想我说要保留它。 这是我的错误,导致我来到这里(以及我认为OP的情况不同)
就我而言,我想使用版本 18,它显示 16。我在Mac上使用自制软件,对我有用的命令如下:
brew uninstall node@16
瞧,之后显示的版本是 18。
当我在自己的终端中使用 nvm 别名时,我在 VS Code 中遇到了问题,即使在运行 alias 命令之后,即使我在 VS Code 中打开一个新终端,版本也会不断切换回旧版本。但是听起来很愚蠢,在我在独立终端中设置版本后,关闭并重新打开 vscode 对我来说是有效的。