Turborepo执行pnpm run build时出现未使用的||=语法错误求助
解决Turborepo中pnpm run build出现的
SyntaxError: Unexpected token '||='问题 排查与解决步骤
- 检查Node.js版本:
||=是ES2021新增的运算符,Node.js 15.0.0及以上才原生支持。执行node -v查看版本,若低于15.x,直接升级到18.x或20.x这类LTS版本。 - 升级tsup依赖:旧版tsup自身或其依赖可能使用了
||=但未做转译。在packages/ui目录下执行pnpm add tsup@latest --save-dev,之后重新运行build命令。 - 清理缓存:Turborepo或pnpm的缓存可能留存了旧代码导致冲突。依次执行:
完成后再尝试build。turbo clean pnpm store prune pnpm install - 排查依赖包:你的代码没写
||=,但某个依赖(含开发依赖)可能用了这个语法。用命令搜索依赖中的运算符:- Linux/macOS:
pnpm exec grep -r "||=" node_modules - Windows PowerShell:
Get-ChildItem node_modules -Recurse | Select-String "||="
找到对应包后,升级该包或替换为兼容旧Node版本的替代包。
- Linux/macOS:
- 调整tsup配置:如果tsup没正确转译语法,检查
tsup.config.ts或tsup.config.js,添加目标环境配置强制转译:import { defineConfig } from 'tsup' export default defineConfig({ target: 'es2020', // 指定低于ES2021的目标,让tsup转译||= // 其他原有配置... })
额外测试
先单独进入packages/ui目录执行pnpm run build,排除Turborepo全局配置的影响。如果单独执行也报错,重点排查该包的tsup配置和本地依赖;如果单独执行正常,再检查turbo.json中的构建命令是否有特殊参数干扰。
内容的提问来源于stack exchange,提问作者Knome1936
相关产品推荐
相关产品推荐

