如何重新安装损坏的 npm

How to Reinstall Broken npm

我刚刚安装了节点 v9.11.1 当我尝试使用 npm 时,我不断收到以下错误:

npm WARN npm npm does not support Node.js v9.11.1
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8.
npm WARN npm You can find the latest version at https://nodejs.org/

我试过 npm i -g npm 但它无法自行更新,它只是不断抛出与上面相同的错误。

当我 运行 npm -v 它说 5.5.1 似乎最新版本目前是 5.8.0.

我尝试删除文件夹并运行启用node.js安装程序的修复功能,但它没有替换模块。

删除全局 NPM 文件夹

npm list -g

对于 Windows 这很可能是:

%AppData%\npm\node_modules

您可以将其粘贴到文件夹的地址栏中,它会带您到那里。

在那里删除名为 npm 的文件夹。

下载最新版本的 NPM

https://github.com/npm/cli/releases/latest

获取 zip 并将其解压缩到您刚刚从中删除 npm 文件夹的 node_modules 文件夹。

将您从 zip 中提取的文件夹重命名为 npm

如果您收到任何关于文件路径或名称太长的警告,请跳过警告。

更新祝你好运

现在您应该可以 运行 npm i -g npm 到 update/reinstall npm 而不会出现任何警告。

如果您在 Windows 中遇到关于路径或文件名太长的错误,我发现这一步特别重要。

您可能会遇到以下错误。如果你真的去删除或移动它列出的文件,你应该能够 运行 npm i -g npm 成功。

npm ERR! Refusing to delete C:\Program Files\nodejs\npx.cmd: is outside C:\Program Files\nodejs\node_modules\npm and not a link
npm ERR! File exists: C:\Program Files\nodejs\npx.cmd
npm ERR! Move it away, and try again.

npm ERR! Refusing to delete C:\Program Files\nodejs\npm.cmd: is outside C:\Program Files\nodejs\node_modules\npm and not a link
npm ERR! File exists: C:\Program Files\nodejs\npm.cmd
npm ERR! Move it away, and try again.

试试这个:

npm install npm@latest -g

更多信息here

对我来说,即使删除 npm 文件夹或重新安装 Node 也无济于事。将 Nodejs 和 npm 更新到我的 CentOS 6 的最新版本(Node 10.19,npm 6.14.3)后,我在 npm 上遇到了常量库错误,而 Node 很好。

有效的方法 - n 节点版本管理器。使用此命令我可以反转我的 npm 版本:n -p 6.13 link

试试这个命令来重新安装 npm

npm install -g npm-reinstall

如果您使用的是 linux 发行版,请添加 sudo

sudo npm install -g npm-reinstall

不知何故,我的 npm 安装有问题,所以重新安装它本身(例如 npm install -g npm 或类似的)是行不通的。

npm readme 实际上定义了一个非常简单的方法来使用这个 curl 命令再次安装 npm:

curl -qL https://www.npmjs.com/install.sh | sudo sh

此安装脚本实际上会删除所有现有的 npm 安装,然后为您安装最新版本。

因为我只关心 one-liners,所以让我让这对你来说非常简单。

打开你的 GitBash 或 Cygwin(我认为 GitBash 和 Cygwin 都将 Windows pre-defined 环境变量和路径存储在它们的存储中,所以这变得很容易),在任何路径上,然后 运行 这个 one-liner 来自那里:

rm -rf $APPDATA/npm; npm install -g npm@latest; npm list -g;

rm -rf $APPDATA/npm; - 这将完全清除旧的全局 npm 文件夹。

npm install -g npm@latest; - 这将安装可用的最新版本的 NPM(因此在此之后无需安装次要版本;))。

npm list -g; - 这将显示您的 NPM 全局配置文件的详细信息。

如果有人坚持要在 PowerShell 中这样做,那么方法如下:

$env:Path += ";C:\Program Files\nodejs\"
cmd /c 'del /s /q /f %APPDATA%\npm && rd /s /q %APPDATA%\npm'; npm install -g npm@latest; npm list -g;

$env:Path += ";C:\Program Files\nodejs\" - 确保将 Nodejs 添加到 Path 至少 运行ning PowerShell 会话。 (注意:运行只要没有错误就只做一次。)

cmd /c 'del /s /q /f %APPDATA%\npm && rd /s /q %APPDATA%\npm'; - 确保完全清除 %APPDATA%\npm 文件夹的必要步骤已采取措施完成。