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

Lar*_*Pox 6 environment-variables flutter flutter-web

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

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

感谢您。

Ant*_*REL 4

用shell脚本解决

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

设置特定于环境的index.html

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

mkdir config
cd config
mkdir release
mkdir dev
mkdir uat
Run Code Online (Sandbox Code Playgroud)

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

cp ../web/index.html release/ && cp ../web/index.html dev/ && cp ../web/index.html uat/
Run Code Online (Sandbox Code Playgroud)

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


脚本文件

创建脚本文件:

touch run.sh && chmod +x run.sh
Run Code Online (Sandbox Code Playgroud)

将此脚本复制到里面:

mkdir config
cd config
mkdir release
mkdir dev
mkdir uat
Run Code Online (Sandbox Code Playgroud)

如何使用

并使用./run.sh release,./run.sh dev或运行它./run.sh dev

使用 --dart-define 作为特定于环境的变量

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

flutter run --dart-define=MY_ENV_VARIABLE=ITS_VALUE
Run Code Online (Sandbox Code Playgroud)

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