Envied
一种在 Dart/Flutter 中处理环境变量的更清洁的方法(深受 Envify 的启发)
概述
使用如下的 .env 文件
KEY=VALUE
以及一个 dart 类
import 'package:envied/envied.dart';
part 'env.g.dart'
@Envied()
abstract class Env {
@EnviedField(envName: 'KEY')
static const key = _Env.key;
}
Envied 将使用 build_runner 生成 part 文件,其中包含您 .env 文件中的值
然后您可以使用 Env 类访问您的环境变量
print(Env.key); // "VALUE"
安装
将 envied 和 envied_generator 添加为依赖项,
如果您正在创建 Flutter 项目
$ flutter pub add envied
$ flutter pub add --dev envied_generator
$ flutter pub add --dev build_runner
如果您正在创建 Dart 项目
$ dart pub add envied
$ dart pub add --dev envied_generator
$ dart pub add --dev build_runner
这会安装三个包
- build_runner,运行代码生成器的工具
- envied_generator,代码生成器
- envied,一个包含注解的包。
用法
在项目根目录下添加一个 .env 文件。如果您的 Envify 类调用它的名称不同,例如 .env.dev,则可以指定此文件的名称。
KEY1=VALUE1
KEY2=VALUE2
创建一个类来接收环境变量(lib/env/env.dart)。将 Envied 的注解添加到类上,并将 EnviedField 添加到您想要从 .env 文件中拉取的值上。
重要!将
.env和env.g.dart文件都添加到您的.gitignore文件中,否则您可能会暴露您的环境变量。
// lib/env/env.dart
import 'package:envied/envied.dart';
part 'env.g.dart';
@Envied(path: '.env.dev')
abstract class Env {
@EnviedField(envName: 'KEY1')
static const key1 = _Env.key1;
@EnviedField()
static const KEY2 = _Env.KEY2;
}
然后运行生成器
# dart
pub run build_runner build
# flutter
flutter pub run build_runner build
然后您可以使用 Env 类访问您的环境变量
print(Env.key1); // "VALUE1"
print(Env.KEY2); // "VALUE2"
许可证
MIT © Peter Cinibulk