Managing .env like files is a means of preventing hard-coded credentials and separating environments.
It is good to implement multiple .env files, e.g. .env.production, .env.development in Flutter app.
Then add some code before dotenv.load can do environments separation:
// main.dart
...
void main() async {
const environment =
String.fromEnvironment('ENV', defaultValue: 'development');
await dotenv.load(fileName: '.env.$environment');
...
Then run command like flutter build web --dart-define ENV=production to spin it up.
But, here is a pitfall. In my practical learning, a file starts with dot . could cause 404 issue:
So, according to this suggestion, we'd better use "dot" instead of ".".
1. Rename .env.production, .env.development files to dotenv.production, dotenv.development
2. Update assets settings
3. Update dotenv.load logic
// main.dart
...
void main() async {
const environment =
String.fromEnvironment('ENV', defaultValue: 'development');
await dotenv.load(fileName: 'dotenv.$environment');
...
4. Update .gitignore file
5. After building, delete unnecessary dotenv.* files in build > web > assets
In this case, dotenv.development is not necessary, so delete it to prevent potential sensitive data leaking.
Top comments (0)