Envify 开源项目教程

Envify 开源项目教程

envifyA better/safer way to handle environment variables in Flutter.项目地址:https://gitcode.com/gh_mirrors/env/envify

项目介绍

Envify 是一个用于处理环境变量的 Dart 包。它通过代码生成的方式,帮助开发者从 .env 文件中加载环境变量,并生成对应的 Dart 类,使得环境变量的使用更加安全和方便。需要注意的是,Envify 已经被弃用,推荐使用其替代品 Envied。

项目快速启动

安装依赖

首先,在 pubspec.yaml 文件中添加 envifyenvify_generator 作为依赖:

dependencies:
  envify: any

dev_dependencies:
  envify_generator: any
  build_runner: any

创建 .env 文件

在项目根目录下创建一个 .env 文件,并添加环境变量:

KEY=VALUE

定义环境变量类

lib/env/env.dart 文件中定义一个环境变量类:

import 'package:envify/envify.dart';

part 'env.g.dart';

@Envify()
abstract class Env {
  static const key = _Env.key;
}

生成代码

运行代码生成器生成对应的 Dart 类:

dart pub run build_runner build

使用环境变量

生成的代码中会包含一个 _Env 类,你可以通过 Env 类来访问环境变量:

void main() {
  print(Env.key); // 输出 "VALUE"
}

应用案例和最佳实践

案例一:多环境配置

在不同的环境中使用不同的 .env 文件,例如 env.developmentenv.production

@Envify(path: 'env.development')
abstract class DevEnv {
  static const key = _DevEnv.key;
}

@Envify(path: 'env.production')
abstract class ProdEnv {
  static const key = _ProdEnv.key;
}

案例二:安全加载环境变量

通过代码生成的方式,环境变量的值在编译时被嵌入到生成的代码中,这使得环境变量的值在运行时无法被修改,提高了安全性。

典型生态项目

Envify 可以与其他需要常量值配置的工具(如 json_serializableretrofit)一起使用,通过代码生成的方式解决这些工具对常量值的需求。

json_serializable 结合使用

pubspec.yaml 中添加 json_serializable 依赖:

dependencies:
  json_annotation: any

dev_dependencies:
  build_runner: any
  json_serializable: any

定义一个 json_serializable 类:

import 'package:json_annotation/json_annotation.dart';

part 'example.g.dart';

@JsonSerializable()
class Example {
  final String key;

  Example({required this.key});

  factory Example.fromJson(Map<String, dynamic> json) => _$ExampleFromJson(json);
  Map<String, dynamic> toJson() => _$ExampleToJson(this);
}

生成代码:

dart pub run build_runner build

retrofit 结合使用

pubspec.yaml 中添加 retrofit 依赖:

dependencies:
  retrofit: any
  dio: any

dev_dependencies:
  build_runner: any
  retrofit_generator: any

定义一个 retrofit API 接口:

import 'package:retrofit/retrofit.dart';
import 'package:dio/dio.dart';

part 'api.g.dart';

@RestApi(baseUrl: "https://example.com")
abstract class ApiClient {
  factory ApiClient(Dio dio, {String baseUrl}) = _ApiClient;

  @GET("/data")
  Future<String> getData();
}

生成代码:

dart pub run build_runner build

通过

envifyA better/safer way to handle environment variables in Flutter.项目地址:https://gitcode.com/gh_mirrors/env/envify

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何将鹤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值