Ubuntu 22.04安装Shopify/CLI触发SyntaxError报错求助
Ubuntu 22.04安装Shopify CLI报SyntaxError解决方案
问题复现
在Ubuntu 22.04系统上执行以下命令安装Shopify CLI时失败:
npm init @shopify/app@latest -- --template node
终端输出报错信息如下:
file:///home/mycomputername/.npm/_npx/f27a05a5c3c9c53d/node_modules/@shopify/cli-kit/dist/index-eb280c22.js:14374 output += colorJson(stringifyMessage(enumToken.value) ?? {}); ^ SyntaxError: Unexpected token '?' at Loader.moduleStrategy (internal/modules/esm/translators.js:133:18) npm ERR! code 1 npm ERR! path /home/mycomputername/Desktop/newshopifyapp npm ERR! command failed npm ERR! command sh -c create-app "--template" "node" npm ERR! A complete log of this run can be found in: npm ERR! /home/mycomputername/.npm/_logs/2022-06-22T15_18_41_596Z-debug-0.log
故障原因
报错核心是本地Node.js版本过低。代码中的??是ES2020标准新增的空值合并运算符,Node.js 14.0.0之前的版本完全不支持该语法。Ubuntu 22.04默认软件源内置的Node.js版本为v12.x,远低于Shopify CLI要求的最低v16.x版本(官方推荐使用v18.x LTS长期支持版本),代码运行时直接抛出语法解析错误。
解决步骤
- 先卸载系统内残留的旧版本Node.js、npm及相关依赖
sudo apt remove --purge nodejs npm sudo apt autoremove
- 安装符合版本要求的Node.js,二选一即可
- 直接通过Node源安装v18.x版本
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs- 通过nvm版本管理器安装(后续切换多Node版本更方便,无权限问题)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 执行完上述命令后重启终端,再执行以下命令安装Node 18 nvm install 18 nvm use 18 - 安装完成后验证版本,确认node版本≥18.x,npm版本≥8.x
node -v npm -v
- 清理本地npm缓存,避免旧缓存文件干扰安装
npm cache clean -f
- 重新执行Shopify CLI初始化命令即可正常安装
npm init @shopify/app@latest -- --template node
注意事项
- 不要加sudo执行npm init或者全局npm安装命令,否则会导致目录权限错乱,后续运行Shopify CLI时会出现无权限访问文件的问题
- 如果之前乱用sudo执行过npm命令,先把用户目录下的npm相关文件夹权限改回当前用户,再执行安装
- 安装完成后可执行
shopify version验证CLI是否正常可用
内容的提问来源于stack exchange,提问作者ffas
相关产品推荐
相关产品推荐

