使用nvm管理版本后npm与Node.js v10.13.0不兼容,无法执行npm命令求助
nvm管理版本后npm与Node.js v10.13.0不兼容,无法执行npm命令求助
嘿,这问题我太熟了!你现在的麻烦根源很明确:你装的npm v9.8.0完全不支持Node.js v10.13.0,而且npm代码里用到的?.这种新语法(可选链操作符)是Node.js 14及以上才支持的,Node v10根本认不出它,所以才会报那个语法错误。
给你一套靠谱的解决步骤,跟着来就行:
首先确认你已经切换到目标Node版本
打开cmd,先执行这条命令,确保nvm帮你切到了v10.13.0:nvm use 10.13.0执行完应该会看到类似
Now using node v10.13.0 (npm v6.4.1)的提示,再用node -v验证一下,输出必须是v10.13.0。接下来降级npm到Node v10支持的版本
Node v10对应的npm最高兼容版本是v6.x系列(比如v6.14.18是这个系列的稳定版)。不过现在你直接跑npm命令可能会报错,所以分两种情况处理:- 如果还能勉强执行npm命令:直接跑这条命令安装兼容版本
npm install -g npm@6.14.18 - 如果npm命令完全跑不起来:先手动删除全局的高版本npm文件夹
找到路径C:\\Users\\mateo\\AppData\\Roaming\\npm\\node_modules\\npm,把这个文件夹删掉,同时删掉同目录下的npm.cmd、npx.cmd这类文件。然后再回到cmd,执行:
这条命令会自动安装v6系列的最新稳定版,和Node v10完美兼容。npm install -g npm@latest-6
- 如果还能勉强执行npm命令:直接跑这条命令安装兼容版本
最后验证一下
执行npm -v,如果输出是6.x的版本,那就搞定了!之后你再运行项目里的npm命令(比如npm install)就不会有问题了。
另外提醒一下,以后用nvm切换Node版本时,记得对应好npm版本:比如Node v8.11也得用npm v6.x,不能用高版本的npm,不然还会出类似的问题。
备注:内容来源于stack exchange,提问作者Kurtnox CCC
相关产品推荐
相关产品推荐

