之前做后端开发的时候,不管是什么语言或者框架,都习惯根据不同环境加载不同的开发配置,比如本地开发的时候,加载 local.env 配置,部署开发环境的时候加载 develop.env 配置,通常通过一个环境变量来决定加载相应的配置。最近在开发一款 Flutter App,我也希望 App 在不同的环境中加载不同的配置文件,实现的方式如下,如有不妥还请指出。 首先在lib建立多个main.dart,比如main_local.dart表示本地开发运行时执行的入口文件,main_develop.dart和main.dart分别表示开发环境和生产环境: lib/ ├── api/ ├── main.dart ├── main_develop.dart ├── main_local.dart ├── models/ ├── pages/ ├── utils/ └── widgets/ 这样如果我们运行在本地开发,那么执行 flutter run -t lib/main_local.dart 那么如何在执行本地开发环境的时候来调用本地开发的配置呢?其实很简单,我来定义配置文件,比如utils/config.dart enum Env { PROD, DEV, LOCAL, } class Config { static Env env; static String get apiHost { switch (env) { case Env.PROD: return "http://yuanxuxu.com"; case Env.DEV: return "http://develop.yuanxuxu.com"; case Env.LOCAL: default: return "http://local.yuanxuxu.com"; } } } 其中Env就是一个环境变量,比如我们要获取 api 请求的地址,那么根据环境变量来获取不同的请求地址,接下来我们只要在运行的入口函数 main 中定义我们当前运行的环境变量,在main_local.

阅读全文

作者的图片

Ryan是菜鸟 | LNMP技术栈笔记

一步一个脚印,一直在路上!记录LNMP技术栈,Web架构,区块链等笔记

菜鸟码农

南京