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

6

我一直在使用环境构建来开发我的Flutter应用程序,我想根据我所做的Web构建类型修改我的index.html文件。

有什么方法可以实现吗? 我有一个env.dart文件,其中包含我需要的变量,但我不知道如何使用我的dart变量修改index.html。

谢谢。


1
这并不是一个很好的答案,但在过去我需要做这件事情时,我会编写一个Python构建脚本来修改HTML文件,然后运行我的构建命令。 - phimath
1个回答

4

使用 Shell 脚本的解决方案

目前我使用的是一个 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

注意:我目前禁用了空安全性,因为我的项目中的库尚未具备空安全性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接