如何将dart变量传递给index.html

时间:2020-10-30 12:11:51

标签: flutter environment-variables flutter-web

我一直在使用环境构建的Flutter应用程序,并且我想根据我正在执行的Web构建的类型来修改index.html文件。

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

谢谢。

1 个答案:

答案 0 :(得分:1)

用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

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