Flutter代码生成插件envied_flutter_generator的使用

Envied_Generator #

此包包含用于 Envied 的生成器。有关详细信息,请参阅 Envied 包。

许可证 #

MIT © Peter Cinibulk

example/example.dart

// 导入 Envied 库
import 'package:envied/envied.dart';

// 生成器会根据 .env 文件中的环境变量生成一个 Dart 类 // 假设你有一个 .env 文件,内容如下: /* ENV_NAME=YourEnvironmentName API_KEY=your_api_key_here */

// 使用 @Envied 注解来生成一个类 @Envied(path: ‘.env’) abstract class Env { // 定义环境变量 static const envName = _Env.envName; static const apiKey = _Env.apiKey; }

void main() { // 打印环境变量 print(‘Environment Name: ${Env.envName}’); print(‘API Key: ${Env.apiKey}’); }

```

完整示例

  1. 创建 .env 文件

    在你的项目根目录下创建一个名为 .env 的文件,并添加以下内容:

    ENV_NAME=YourEnvironmentName
    API_KEY=your_api_key_here
    
  2. 添加依赖

    pubspec.yaml 文件中添加 enviedenvied_generator 依赖:

    dependencies:
      envied: ^0.4.0
    
    dev_dependencies:
      build_runner: ^2.1.7
      envied_generator: ^0.4.0
    
  3. 生成代码

    运行以下命令来生成 Dart 代码:

    flutter pub run build_runner build
    
  4. 使用生成的代码

    创建一个 Dart 文件(例如 main.dart),并使用生成的 Env 类:

    import 'package:envied/envied.dart';
    
    // 生成器会根据 .env 文件中的环境变量生成一个 Dart 类
    [@Envied](/user/Envied)(path: '.env')
    abstract class Env {
      // 定义环境变量
      static const envName = _Env.envName;
      static const apiKey = _Env.apiKey;
    }
    
    void main() {
      // 打印环境变量
      print('Environment Name: ${Env.envName}');
      print('API Key: ${Env.apiKey}');
    }
    

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

1 回复

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


envied_flutter_generator 是一个 Flutter 代码生成插件,它可以帮助你在 Flutter 项目中安全地管理和使用环境变量。通过这个插件,你可以将敏感的环境变量(如 API 密钥、数据库连接字符串等)从代码中分离出来,并在编译时自动生成相应的 Dart 代码来访问这些变量。

以下是使用 envied_flutter_generator 的基本步骤:

1. 添加依赖

首先,在你的 pubspec.yaml 文件中添加 enviedenvied_generator 作为依赖项:

dependencies:
  flutter:
    sdk: flutter
  envied: ^0.3.0

dev_dependencies:
  flutter_test:
    sdk: flutter
  envied_generator: ^0.3.0
  build_runner: ^2.1.0

2. 创建环境变量类

在你的项目中创建一个 Dart 文件(例如 env.dart),并定义一个类来存储环境变量。使用 [@Envied](/user/Envied) 注解来标记这个类,并使用 [@EnviedField](/user/EnviedField) 注解来标记每个环境变量字段。

import 'package:envied/envied.dart';

part 'env.g.dart';

[@Envied](/user/Envied)(path: '.env')
abstract class Env {
  [@EnviedField](/user/EnviedField)(varName: 'API_KEY')
  static const String apiKey = _Env.apiKey;

  [@EnviedField](/user/EnviedField)(varName: 'BASE_URL')
  static const String baseUrl = _Env.baseUrl;
}

3. 创建 .env 文件

在项目的根目录下创建一个 .env 文件,并定义你的环境变量:

API_KEY=your_api_key_here
BASE_URL=https://api.example.com

4. 生成代码

运行以下命令来生成代码:

flutter pub run build_runner build

这将生成一个 env.g.dart 文件,其中包含访问环境变量的代码。

5. 使用环境变量

现在你可以在项目中使用生成的环境变量了:

import 'env.dart';

void main() {
  print('API Key: ${Env.apiKey}');
  print('Base URL: ${Env.baseUrl}');
}

6. 忽略 .env 文件

为了避免将敏感信息提交到版本控制系统,确保将 .env 文件添加到 .gitignore 文件中:

.env

7. 处理不同的环境

你可以在不同的环境中使用不同的 .env 文件。例如,你可以创建 .env.development.env.production 文件,并在代码中根据环境动态加载相应的文件。

[@Envied](/user/Envied)(path: '.env.development')
abstract class EnvDev {
  [@EnviedField](/user/EnviedField)(varName: 'API_KEY')
  static const String apiKey = _EnvDev.apiKey;
}

[@Envied](/user/Envied)(path: '.env.production')
abstract class EnvProd {
  [@EnviedField](/user/EnviedField)(varName: 'API_KEY')
  static const String apiKey = _EnvProd.apiKey;
}
回到顶部