flutter如何配置.env文件

在Flutter项目中如何正确配置.env文件?我尝试在pubspec.yaml中添加了flutter_dotenv依赖,并在项目根目录创建了.env文件,但运行时无法读取环境变量。有没有完整的配置步骤示例?包括如何在不同环境中加载不同的.env文件(如.env.development、.env.production),以及如何在代码中安全地访问这些变量?

2 回复

在Flutter中配置.env文件,推荐使用 flutter_dotenv 包:

  1. 添加依赖:在 pubspec.yaml 的 dependencies 下添加:

    dependencies:
      flutter_dotenv: ^5.0.2
    
  2. 创建文件:在项目根目录创建 .env 文件(记得加入 .gitignore

  3. 添加配置:在 .env 中写入配置:

    API_URL=https://api.example.com
    API_KEY=your_secret_key
    
  4. 加载配置:在 main.dart 中初始化:

    import 'package:flutter_dotenv/flutter_dotenv.dart';
    
    void main() async {
      await dotenv.load(fileName: ".env");
      runApp(MyApp());
    }
    
  5. 使用配置

    String apiUrl = dotenv.get('API_URL');
    String apiKey = dotenv.get('API_KEY');
    

注意:不同环境可创建多个文件(如 .env.production),通过 dotenv.load(fileName: ".env.production") 切换。

更多关于flutter如何配置.env文件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中配置和使用 .env 文件,可以通过第三方库 flutter_dotenv 实现,用于管理环境变量(如 API 密钥、基础 URL 等)。以下是详细步骤:

步骤 1:添加依赖

pubspec.yaml 文件的 dependencies 下添加 flutter_dotenv

dependencies:
  flutter_dotenv: ^5.1.0

运行 flutter pub get 安装依赖。

步骤 2:创建 .env 文件

在项目根目录(与 pubspec.yaml 同级)创建 .env 文件,并定义环境变量:

API_BASE_URL=https://api.example.com
API_KEY=your_secret_key_here

注意:将 .env 添加到 .gitignore 中,避免提交敏感信息。

步骤 3:配置 pubspec.yaml

pubspec.yaml 中声明 .env 文件为资源:

flutter:
  assets:
    - .env

步骤 4:加载环境变量

main.dartmain() 函数中初始化加载:

import 'package:flutter_dotenv/flutter_dotenv.dart';

void main() async {
  await dotenv.load(fileName: ".env"); // 加载文件
  runApp(MyApp());
}

步骤 5:使用环境变量

通过 dotenv.get('KEY')dotenv.env['KEY'] 获取值:

String baseUrl = dotenv.get('API_BASE_URL');
String apiKey = dotenv.env['API_KEY']!;

其他配置建议

  • 多环境支持:可创建多个文件(如 .env.dev.env.prod),通过 --dart-define 或平台特定方式切换。
  • 错误处理:使用 dotenv.get() 时,若键不存在会抛出异常;可用 dotenv.maybeGet() 返回可空值。

示例代码

完整 main.dart 示例:

import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

void main() async {
  await dotenv.load(fileName: ".env");
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text('API URL: ${dotenv.get('API_BASE_URL')}'),
        ),
      ),
    );
  }
}

通过以上步骤,即可在 Flutter 中安全地管理环境变量。

回到顶部