离线无网络环境下如何创建并运行Flutter项目
Flutter离线创建、运行项目方案
核心结论
- 无网络状态下可以新建Flutter项目,也可以正常离线运行已经完成依赖拉取的Flutter应用
- 创建、运行环节出现的卡顿问题,是Flutter CLI默认触发的版本校验、依赖在线检查逻辑导致的,通过参数或配置跳过检查即可绕过限制
卡顿原因
默认场景下,无论是新建项目还是启动已有项目,Flutter会自动执行两个联网操作,网络不通时就会反复重试直到超时:
- 启动阶段校验Flutter SDK版本、检查官方源的版本更新
- 自动执行
pub get流程校验pubspec.yaml中声明的依赖状态,哪怕是空白项目的默认基础依赖,只要没有标记为本地缓存可用,就会尝试联网拉取
空白基础项目没有新增第三方依赖,只要之前在联网状态下成功运行过一次,所有默认依赖已经存在本地pub缓存,完全不需要联网就能运行。
具体操作方法
离线运行已有项目
终端运行方式
直接在项目根目录执行带离线参数的运行命令即可:flutter run --offline
VSCode图形化运行配置
如果习惯用VSCode的运行按钮启动项目,需要修改启动配置跳过联网检查:
- 打开项目根目录下的
.vscode/launch.json文件,不存在则手动新建 - 在
configurations对应的启动配置项中添加字段:"args": ["--offline"] - 保存配置后再点击运行按钮,就不会触发联网重试
注意:该方法仅适用于所有依赖已经成功缓存到本地的项目,未拉取过依赖的新项目加离线参数会因缺失依赖报错。
离线新建项目
不要使用VSCode的图形化「Flutter New Project」入口,该入口不会传递离线参数,会卡在联网检查环节。直接在终端执行带离线参数的创建命令:flutter create --offline 自定义项目名
命令执行完成后进入项目目录,使用带--offline参数的运行命令即可正常启动项目,全程不需要网络。
永久关闭默认网络校验(可选)
如果需要频繁在离线环境使用Flutter,可以配置全局环境变量,让所有Flutter命令默认使用离线模式,无需每次手动加参数:
- Windows:在系统环境变量中新增变量
PUB_OFFLINE,变量值设为1 - macOS/Linux:在当前使用的shell配置文件(
.zshrc/.bashrc等)中添加一行export PUB_OFFLINE=1,保存后执行source 配置文件路径使配置生效
配置完成后,新建、运行、编译Flutter项目时都会默认跳过联网检查,直接调用本地缓存的SDK和依赖资源。
内容的提问来源于stack exchange,提问作者Muhammadim Yusoff Jamaluddin
相关产品推荐
相关产品推荐

