执行flutter pub get时报错‘<< was unexpected at this time.’的解决方法
错误含义及解决方案
错误含义
<< was unexpected at this time. 是Windows命令提示符(cmd)的语法报错。<<是类Unix shell(如bash)中的here document语法,用于读取多行输入,但Windows原生cmd完全不支持该语法。当执行flutter pub get时,某个环节(比如依赖包的安装脚本、项目自定义脚本或Flutter自身的批处理逻辑)调用了包含<<的cmd脚本,就会触发这个错误。
解决步骤
- 检查项目自定义脚本:打开
pubspec.yaml,查看是否存在scripts字段,里面有没有使用<<、管道符|等Unix风格语法。如果有,将其修改为Windows cmd兼容的写法,或者暂时移除该脚本后重试。 - 清理缓存并重新拉取依赖:
- 删除项目根目录下的
pubspec.lock文件和.dart_tool文件夹 - 找到Flutter SDK目录下的
.pub-cache文件夹并删除(注意:这会清除所有已下载的依赖,后续会重新下载) - 重启VSCode,执行
flutter pub get
- 删除项目根目录下的
- 排查问题依赖:如果清理缓存无效,大概率是某个第三方依赖的安装脚本不兼容Windows。尝试逐个注释
pubspec.yaml中的依赖,每次注释后执行flutter pub get,定位到引发错误的依赖,替换为该依赖的Windows兼容版本,或者寻找功能类似的替代包。 - 切换终端执行环境:在VSCode终端中切换到PowerShell(而非默认的cmd),再执行
flutter pub get。PowerShell对Unix语法的兼容性优于cmd,可能绕过该错误。 - 重装Flutter SDK:如果以上方法都无效,可能是Flutter自身的批处理脚本(如
flutter.bat)损坏。下载最新稳定版Flutter SDK,替换现有安装目录,确保环境变量配置正确,重启VSCode后重试。
内容的提问来源于stack exchange,提问作者LostTexan
相关产品推荐
相关产品推荐

