IntelliJ终端npm start正常,普通Shell执行ES6语法报错求助
解决普通Shell终端执行
npm start时的SyntaxError: Unexpected token {问题 从你提供的报错信息来看,核心问题出在Node.js版本过低上:你的普通Shell终端使用的是Node v5.5.0,这个版本对ES6的解构赋值语法(也就是const { choosePort, ... } = require(...)这种写法)支持不完善,而IntelliJ终端里应该是配置了更高版本的Node,所以能正常运行项目。
下面是具体的解决步骤:
升级Node.js版本
Node v6及以上版本已经全面支持ES6解构赋值,推荐安装长期支持(LTS)版本:
如果你用nvm管理Node版本,执行以下命令:# 安装最新LTS版本 nvm install --lts # 切换到刚安装的版本 nvm use --lts # 验证版本是否切换成功 node -v如果你不用nvm,可以直接下载对应安装包完成升级。
匹配项目指定的Node版本
检查项目根目录是否有.nvmrc文件,如果有的话,里面记录了项目要求的Node版本,直接执行nvm use就能自动切换到对应版本,避免版本不兼容问题。重新执行启动命令
切换到正确的Node版本后,回到项目目录,再次运行npm start,应该就能正常执行scripts/start.js里的代码了。
补充说明:IntelliJ之所以能正常运行,是因为它的终端默认会读取你在IDE设置中配置的Node解释器(大概率是你系统中安装的更高版本Node),而普通Shell终端默认使用了nvm设置的v5.5.0版本,两者版本不一致才导致了这个差异。
内容的提问来源于stack exchange,提问作者eugene
相关产品推荐
相关产品推荐

