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

执行grunt build指定参数时触发SyntaxError错误,求解决方法

Cordova构建项目时出现语法错误(Unexpected token '.')

问题详情

执行以下构建命令:

grunt build --env=devel --platform=android --crosswalk=false

触发语法错误,报错日志如下:

Running "build" task

Build Parameters
================
env       = devel
platform  = android
crosswalk = false

Running "cleanup:devel:android" (cleanup) task

Running "shell:remove_all_platforms" (shell) task
C:\Users\saius\AppData\Roaming\nvm\v12.13.0\node_modules\cordova\node_modules\nopt\lib\nopt-lib.js:64
const StringType = typeDefs.String?.type

SyntaxError: Unexpected token '.'
at Module._compile (internal/modules/cjs/loader.js:892:18)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Module.require (internal/modules/cjs/loader.js:849:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous>

环境信息

  • Node版本:12.13.0
  • NPM版本:6.12.0
  • Cordova版本:~12.0.1(cordova-android为最新版本)

预期效果

成功构建已安装平台和插件的项目

问题原因

报错中的?.是可选链操作符,该语法仅在Node.js 14.0.0及以上版本支持。当前使用的Node.js 12.13.0不兼容该语法,而Cordova 12.x版本依赖的nopt包已使用该新语法,因此触发报错。

解决办法

方案一:升级Node.js版本

将Node.js升级至14.0.0或更高版本(推荐使用LTS版本,如16.x、18.x),升级后重新执行构建命令即可。
若使用nvm管理Node版本,可执行以下命令:

nvm install 16
nvm use 16

方案二:降级Cordova版本

如果暂时无法升级Node.js,可将Cordova降级到11.x版本,该版本依赖的nopt包未使用可选链语法,适配Node.js 12。执行命令:

npm install -g cordova@11

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:05:08