首页 > 解决方案 > 如何将 dart 变量传递给 index.html

问题描述

我一直在使用环境构建开发我的颤振应用程序,我想根据我正在做的网络构建类型修改我的 index.html 文件。

有没有办法这样做?我有一个 env.dart,其中包含我需要的变量,但我不知道如何用我的 dart 变量修改 index.html。

谢谢。

标签: flutterenvironment-variablesflutter-web

解决方案


使用 shellscript 的解决方案

我目前使用一个,但它是一个 shell 脚本

设置特定于环境的 index.html

从您的项目文件夹中创建您将存储 index.html 文件的环境:

mkdir config
cd config
mkdir release
mkdir dev
mkdir uat

然后将您不同的 index.html(尤其是来自 web/ 的那个)复制到 config/release/ config/dev/ 和 config/uat/

cp ../web/index.html release/ && cp ../web/index.html dev/ && cp ../web/index.html uat/

/!\ 备份位于 WEB/INDEX.HTML
中的当前文件 该脚本会将 index.html 从您的不同环境目录直接复制到 web/ 并擦除 web/ 中的当前文件。如果您永久删除该文件,我拒绝承担任何责任。你是警告。


脚本文件

创建脚本文件:

touch run.sh && chmod +x run.sh

在里面复制这个脚本:

cp config/$1/index.html web/index.html && flutter run -d chrome --no-sound-null-safety

如何使用

并使用./run.sh release,./run.sh dev./run.sh dev

将 --dart-define 用于特定于环境的变量

我还运行此脚本以及设置环境变量--dart-define

flutter run --dart-define=MY_ENV_VARIABLE=ITS_VALUE

注意:我目前禁用空安全,因为我的项目的库还不是空安全的。


推荐阅读