Envied

CI codecov

一种在 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"

安装

enviedenvied_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 文件中拉取的值上。

重要!将 .envenv.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

GitHub

查看 Github