You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04.3 LTS系统自动更新后NPM报错Unexpected token =的修复方案求助

修复npm与Node.js版本不兼容导致的"Unexpected token ="错误

你的问题核心很明确:npm 8.1.4和Node.js v10.19.0版本不兼容。npm 8已经不再支持Node.js 10,而且它的代码里使用了Node.js 12及以上版本才支持的类字段语法(就是日志里的static description = 'Get help on npm'),Node.js 10无法解析这个语法,所以抛出了Unexpected token =错误。

先看看你遇到的错误输出:

*@*:~$ npm help
npm WARN npm npm does not support Node.js v10.19.0
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 You can find the latest version at https://nodejs.org/
npm ERR! Unexpected token =
npm ERR! A complete log of this run can be found in:
npm ERR! /home/*/.npm/_logs/2021-11-19T13_44_25_087Z-debug.log

错误日志里的关键信息:

0 verbose stack /usr/local/lib/node_modules/npm/lib/commands/help.js:16
30 verbose stack static description = 'Get help on npm'
30 verbose stack ^
30 verbose stack
30 verbose stack SyntaxError: Unexpected token =
30 verbose stack at Module._compile (internal/modules/cjs/loader.js:723:23)
30 verbose stack at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
30 verbose stack at Module.load (internal/modules/cjs/loader.js:653:32)
30 verbose stack at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
30 verbose stack at Function.Module._load (internal/modules/cjs/loader.js:585:3)
30 verbose stack at Module.require (internal/modules/cjs/loader.js:692:17)
30 verbose stack at require (internal/modules/cjs/helpers.js:25:18)
30 verbose stack at Npm.cmd (/usr/local/lib/node_modules/npm/lib/npm.js:97:18)
31 verbose cwd /home/*
32 verbose Linux 5.11.0-40-generic
33 verbose argv "/usr/bin/node" "/usr/local/bin/npm" "help"
34 verbose node v10.19.0
35 verbose npm v8.1.4
36 error Unexpected token =
37 verbose exit 1

下面给你两种可行的修复方案:

方案一:升级Node.js到兼容版本(推荐)

npm 8要求Node.js至少v12.13.0,更推荐使用LTS长期支持版本,方便后续稳定性维护。这里用nvm(Node版本管理器)来安装,它能帮你轻松管理多个Node版本:

  1. 先卸载当前的Node.js和npm:
    sudo apt remove nodejs npm
    sudo rm -rf /usr/local/lib/node_modules/npm
    
  2. 安装nvm:
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    
  3. 重启终端,或者手动加载nvm到当前会话:
    source ~/.bashrc  # 如果用zsh终端就换成source ~/.zshrc
    
  4. 安装并使用最新的LTS版本:
    nvm install --lts
    nvm use --lts
    
    执行完后,用node -v和npm -v检查版本,应该已经是配套的兼容版本了。

方案二:降级npm到支持Node.js 10的版本

如果暂时不想升级Node.js,可以把npm降级到6.x版本(npm 6是最后一个支持Node.js 10的大版本):

运行以下命令全局降级npm:

sudo npm install -g npm@6

降级完成后,用npm -v确认版本是6.x,这时候再执行npm命令就不会报错了。


内容的提问来源于stack exchange,提问作者MarvinsRoom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 02:52:45