npm版本过低造成的各种问题汇总及升级方法

npm does not support Node.js 

这个是因为npm和Node.js的版本不合适,版本对照表在这里:https://nodejs.org/zh-cn/download/releases/

查看node和npm的版本:

node -v
npm -v

试图装一个npm,结果报错:TypeError: Cannot read property ‘match’ of undefined

npm -g install npm@6.14.8

后面装n也是同样的报错:

pxy@pxy-pc:~$ sudo npm install -g n
[sudo] password for pxy: 
npm http GET http://registry.npm.taobao.org/n
npm http 304 http://registry.npm.taobao.org/n
npm http GET http://registry.npmmirror.com/n/-/n-9.0.1.tgz
npm http 200 http://registry.npmmirror.com/n/-/n-9.0.1.tgz
npm ERR! TypeError: Cannot read property 'match' of undefined
....

于是我试着更换npm版本,也试着设置这个:

npm config set strict-ssl false 

没有起效。至于删除package-lock.json,node_modules,我发现我根本没有,自然也不会起效。

于是我用apt卸掉了node和npm,打算重装npm,结果:

xy@pxy-pc:~$ sudo apt-get install npm
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 npm : 依赖: node-gyp (>= 0.10.9) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

这个不知道为啥。

反正我确定了apt安装的Node和npm版本都非常低,所以我准备卸载了重装。

卸载使用的命令是:

sudo apt-get --purge remove nodejs

然后再确认下:(实际这三条没有影响)

sudo apt remove npm 
sudo apt remove node
cd /usr/local/bin

去node.js官网(https://nodejs.org/zh-cn/download/)下载稳定版本:
在这里插入图片描述
然后将这个文件解压到/opt下,建立node和npm的软连接,检查版本。加入淘宝的地址是为了加速npm相关的下载速度。

pxy@pxy-pc:/mnt/shared$ sudo tar -xJf node*xz -C /opt
pxy@pxy-pc:/mnt/shared$ sudo ln -s /opt/node-v18.14.2-linux-x64/bin/node /usr/local/bin/node
pxy@pxy-pc:/mnt/shared$ sudo ln -s /opt/node-v18.14.2-linux-x64/bin/npm /usr/local/bin/npm
pxy@pxy-pc:/mnt/shared$ npm -v
9.5.0
pxy@pxy-pc:/mnt/shared$ node -v
v18.14.2
pxy@pxy-pc:/mnt/shared$ sudo npm config set registry https://registry.npm.taobao.org
pxy@pxy-pc:/mnt/shared$ source ~/.bashrc

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当我们在使用CSDN下载或使用一些基于Node.js的项目时,我们可能会遇到Node版本npm版本不一致的问题。解决这个问题可以通过以下方式: 1. 检查Node版本:首先,我们需要确定我们当前安装的Node版本是多少。可以在命令行中输入 `node -v` 来查看。如果我们下载的项目要求特定版本的Node,我们需要升级或降级Node版本,使其与要求版本一致。 2. 检查npm版本:与Node版本类似,我们也可以使用命令行输入 `npm -v` 来查看已安装的npm版本。如果我们的npm版本过高或过,可以通过升级或降级npm版本来与项目要求版本一致。 3. 使用nvm工具:nvm是一个方便管理Node版本的工具。通过nvm,我们可以在同一台机器上安装多个Node版本,并且可以轻松切换这些版本。我们可以在CSDN或其他官方网站上下载并安装nvm,然后使用命令行来安装特定版本的Node,并使用nvm轻松切换版本。 4. 使用n工具:n是另一个可以帮助管理Node版本的工具。通过n,我们可以方便地从命令行安装、切换和管理Node版本。我们可以按照CSDN或其他官方网站的说明下载并安装n工具,然后使用命令行来安装特定版本的Node,并使用n来管理版本。 5. 修改项目配置文件:有时,我们可能需要修改项目的配置文件,以便项目可以使用我们当前安装的Node和npm版本。我们可以根据项目要求修改项目的package.json文件中的"engines"字段,以指定所需的Node和npm版本。 总结起来,解决CSDN中Node版本npm版本不一致的问题,我们可以通过检查和升级/降级Node和npm版本,使用nvm或n工具来管理Node版本,以及修改项目配置文件来指定所需的版本。这样就可以确保我们在使用CSDN下载或使用基于Node.js的项目时,版本一致,避免出现兼容性问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值