Flutter代码生成插件envy_generator的使用
Flutter代码生成插件envy_generator的使用
欢迎来到envy_generator,这是一个用于提取环境变量的代码生成器。
安装
要使用envy_generator,你需要设置一个典型的build_runner
/代码生成器。首先,将以下依赖项添加到你的pubspec.yaml
文件中:
如果你在Flutter项目中使用:
$ flutter pub add envy_annotation
$ flutter pub add --dev build_runner
$ flutter pub add --dev envy_generator
如果你在Dart项目中使用:
$ dart pub add envy_annotation
$ dart pub add --dev build_runner
$ dart pub add --dev envy_generator
这将安装三个包:
build_runner
,这是运行代码生成器的工具。envy_generator
,这是代码生成器本身。envy_annotation
,包含为envy_generator使用的注解。
运行生成器
要运行代码生成器,请执行以下命令:
dart run build_runner build
对于Flutter项目,你也可以运行:
flutter pub run build_runner build
注意,像大多数代码生成器一样,envy_generator需要你在文件顶部导入注解(envy_annotation
)并使用part
关键字。
因此,要使用envy_generator的文件应该从以下内容开始:
import 'package:envy_annotation/envy_annotation.dart';
part 'config.e.dart';
使用envy_generator创建配置模型
以下是一个典型的envy类的示例:
// 这个文件名为 "config.dart"
import 'package:envy_annotation/envy_annotation.dart';
// 必须:关联我们的 `config.dart` 与由envy生成的代码
part 'config.e.dart';
@envy
class Config {
@variable
static String apiBaseUrl = _Envy.apiBaseUrl;
@variable
static String get apiUrl => _Envy.apiUrl;
@variable
static bool get devMode => _Envy.devMode;
@variable
static int get threadsCount => _Envy.threadsCount;
@variable
static double get similarityDistanceThreshold =>
_Envy.similarityDistanceThreshold;
@variable
static String? get missingOne => _Envy.missingOne;
static String get testVar => 'test';
}
.env
文件的内容如下:
# 这个文件名为 ".env"
API_BASE_URL=https://my.api
API_URL=$API_BASE_URL/guest/json-rpc
DEV_MODE=TRUE
THREADS_COUNT=3
SIMILARITY_DISTANCE_THRESHOLD=0.2
更多关于Flutter代码生成插件envy_generator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter代码生成插件envy_generator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何使用Flutter代码生成插件envy_generator
的示例。这个插件通常用于从.env
文件中生成Dart代码,从而方便地在Flutter应用中管理环境变量。
步骤 1: 添加依赖
首先,你需要在pubspec.yaml
文件中添加envy
和build_runner
依赖。envy
用于解析.env
文件,而build_runner
用于运行代码生成任务。
dependencies:
flutter:
sdk: flutter
envy: ^x.y.z # 替换为最新版本号
dev_dependencies:
build_runner: ^x.y.z # 替换为最新版本号
步骤 2: 创建.env
文件
在项目的根目录下创建一个.env
文件,并添加你的环境变量。例如:
API_URL=https://api.example.com
FEATURE_FLAG_A=true
步骤 3: 生成代码
在pubspec.yaml
文件中,添加一个build.yaml
配置文件的引用,用于配置envy_generator
。然后创建一个build.yaml
文件:
pubspec.yaml
# ... 其他配置 ...
flutter:
# ... 其他配置 ...
# 添加以下行以包含build配置
generate: true
build.yaml
targets:
$default:
builders:
envy_generator:envy:
generate_for:
- lib/env/**.dart
options:
input_file: .env
接下来,使用build_runner
生成代码:
flutter pub run build_runner build --delete-conflicting-outputs
步骤 4: 使用生成的代码
envy_generator
会在lib/env/
目录下生成一个env_config.dart
文件(或其他你配置的文件名)。你可以在你的Flutter应用中导入并使用这个文件。
例如,生成的env_config.dart
可能看起来像这样:
// This is a generated file. Do not edit.
class EnvConfig {
static const String apiUrl = 'https://api.example.com';
static const bool featureFlagA = true;
}
在你的Flutter应用中,你可以这样使用:
import 'package:your_app/env/env_config.dart';
void main() {
print('API URL: ${EnvConfig.apiUrl}');
print('Feature Flag A: ${EnvConfig.featureFlagA}');
runApp(MyApp());
}
完整示例结构
your_flutter_app/
├── lib/
│ ├── env/
│ │ └── env_config.g.dart // 自动生成的文件
│ ├── main.dart
├── .env
├── pubspec.yaml
├── build.yaml
请确保替换x.y.z
为实际的插件版本号,并根据你的项目结构调整文件路径。这样,你就成功地在Flutter项目中集成了envy_generator
并使用了它。