node、npm、cnpm踩坑


前言

提示: npm install -g cnpm --registry=https://registry.npm.taobao.org 安装cnpm,不管你 npm 是不是低版本,默认都会安装最新版的 cnpm

关于node.js版本踩坑:项目安装node包的过程中,发现npm很慢,于是想用cnpm,使用命令安装cnpm,安装完成发现cnpm无法使用,通过报错发现,是node版本太低,于是安装新版node,cnpm 无法使用的问题解决了,新的问题来了,npm install 或 cnpm install 初始化 node包 直接抛错,node 包安装不了。
报错如下:
internal/modules/cjs/loader.js:985
throw err;
^

Error: Cannot find module ‘fs/promises’
Require stack:

  • D:\Users\AppData\Roaming\nvm\v12.16.1\node_modules\cnpm\node_modules\npminstall\bin\install.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:982:15)
    at Function.Module._load (internal/modules/cjs/loader.js:864:27)
    at Module.require (internal/modules/cjs/loader.js:1044:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object. (D:\Users\AppData\Roaming\nvm\v12.16.1\node_modules\cnpm\node_modules\npminstall\bin\install.js:10:12)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions…js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) {
    code: ‘MODULE_NOT_FOUND’,
    requireStack: [
    ‘D:\Users\AppData\Roaming\nvm\v12.16.1\node_modules\cnpm\node_modules\npminstall\bin\install.js’
    ]
    }

一、cnpm i 报错无法使用

在这里插入图片描述

二、解决步骤

1.查看cnpm 是否安装

输入命令查看cnpm版本:

cnpm -v

查看版本如下
在这里插入图片描述

2.查看 node 和 npm 版本

npm -v
node -v

在这里插入图片描述

3. 处理

百度类似问题都是升级node,由于node不向下兼容,一些旧的项目可能会出错,所以不建议升级node.js
最终研究发现,cnpm 8.2.0 版本,无法在 12.16.1 的node 版本下使用,使用命令将 cnpm 降低版本即可

命令如下:

npm uninstall -g cnpm // 首先卸载 cnpm
npm install cnpm@7.1.0 -g // 安装指定版本 cnpm

总结

总之一句话,在 node 的使用过程中,一定要注意 版本之间的兼容性问题

  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值