Flutter环境变量生成插件env_gen的使用

Flutter环境变量生成插件env_gen的使用

简介

env_gen 是一个用于生成基于环境变量文件以及文件替换的命令行工具。它可以帮助你在Dart项目中定义多个环境,并在开发过程中或CI/CD流水线中动态生成环境变量文件。

开始使用

首先,你需要全局安装 env_gen 工具:

pub global activate env_gen

初始化

在你的Dart项目的根目录下运行以下命令以初始化 env_gen

env_gen initialize

这将会生成一个模板文件 env.json 以及一些目录结构。你可以根据需要修改环境名称或添加更多环境,但如果你需要替换文件,请确保同时更改对应的文件夹名称。

初始化后的目录结构示例

my_dart_project/
├── .env_gen/
│   ├── dev/
│   ├── staging/
│   └── production/
├── env.json
└── pubspec.yaml

环境变量替换

当你在CI流水线中使用该工具时,可以利用CI runner中的Secrets。只需添加一个与 env.json 中定义的变量同名的环境变量即可。如果变量是特定于某个环境的,可以在变量前加上环境名称作为前缀。

示例

// 通用的APP_KEY变量
APP_KEY=<appkeyhere>

// 生产环境特有的变量
PRODUCTION_APP_KEY=<productionappkeyhere>

文件替换

在初始化后创建的环境文件夹中添加需要替换的文件,并在 env.json 中指定它们的目标路径。目标路径是相对于项目的根目录的。

示例

env.json 中配置文件替换:

{
  "files": {
    "GoogleService-Info.plist": "ios/Runner/GoogleService-Info.plist"
  }
}

这样,GoogleService-Info.plist 文件会在构建时被正确地复制到目标位置。

生成传统 .env 文件

如果你需要一个传统的 .env 文件,可以使用 -e 参数来生成。

env_gen -e

这将在项目的根目录下生成一个 .env 文件。

发布更改

要生成一个新的 env.dart 文件,可以使用以下命令:

env_gen <environment>

例如,生成生产环境的 env.dart 文件:

env_gen production

生成的 env.dart 文件示例

class Env {
  static const String APP_KEY = 'your_app_key_here';
  static const String DATABASE_URL = 'your_database_url_here';
}

更多关于Flutter环境变量生成插件env_gen的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter环境变量生成插件env_gen的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


env_gen 是一个用于在 Flutter 项目中生成环境变量文件的插件。它可以帮助你轻松地管理不同环境(如开发、测试、生产)的配置,并自动生成相应的 Dart 文件以便在代码中使用。

以下是如何使用 env_gen 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 env_gen 插件的依赖。

dev_dependencies:
  env_gen: ^1.0.0

2. 创建环境变量文件

在你的项目根目录下创建一个 .env 文件。你可以为不同的环境创建不同的文件,例如 .env.development.env.production 等。

.env.development 文件示例:

API_BASE_URL=https://dev.api.example.com
DEBUG=true

.env.production 文件示例:

API_BASE_URL=https://api.example.com
DEBUG=false

3. 配置 env_gen

pubspec.yaml 中配置 env_gen,指定环境变量文件的路径和生成的 Dart 文件路径。

env_gen:
  input: .env.development
  output: lib/env.dart

你可以为不同的环境配置不同的文件路径:

env_gen:
  development:
    input: .env.development
    output: lib/env_development.dart
  production:
    input: .env.production
    output: lib/env_production.dart

4. 生成环境变量文件

运行以下命令来生成 Dart 文件:

flutter pub run env_gen

这将根据 .env.development 文件生成 lib/env.dart 文件。

5. 使用生成的环境变量

生成的 Dart 文件将包含一个 Env 类,你可以直接在代码中使用它。

import 'package:your_app/env.dart';

void main() {
  print(Env.API_BASE_URL); // 输出: https://dev.api.example.com
  print(Env.DEBUG); // 输出: true
}

6. 切换环境

如果你为不同的环境生成了不同的 Dart 文件,你可以在代码中根据当前环境导入相应的文件。

import 'package:your_app/env_development.dart'; // 或者 env_production.dart

void main() {
  print(Env.API_BASE_URL); // 根据导入的文件输出相应的值
  print(Env.DEBUG); // 根据导入的文件输出相应的值
}
回到顶部