如何阻止 flutter web 覆盖我的 index.html 每次构建?

How to stop flutter web from overwriting my index.html every build?

所以我正在使用 flutter web + cloud firestore

为了让 Cloud Firestore 正常工作,我必须修改我的 index.html。问题是每次我 运行

flutter build web

它覆盖了我的 index.html,我必须手动重新添加所有必要的代码片段才能使其再次运行。

有没有一种方法可以 运行 flutter build web 而不会覆盖 index.html?

另一个相关问题是,当我将网站部署到 firebase 时,它​​工作正常,但是当我 运行 这个网站在本地进行测试时使用

flutter run -d chrome

当它 运行 在 chrome 上时,该网站再次使用全新的 index.html,但没有必要的代码,因此无法正常工作。我没有机会编辑 index.html 以应用必要的代码,因为它会立即构建并 运行s。

有解决办法吗?

您应该修改 <project>/web 文件夹中的 index.html 文件,而不是 <project>/build/web 文件夹中的文件。此文件将在构建过程中复制到 <project>/build/web 文件夹。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Flutter web</title>
  <link href="https://fonts.googleapis.com/css?family=Raleway&display=swap" rel="stylesheet">
  <script defer src="main.dart.js" type="application/javascript"></script>
  <script src="https://www.gstatic.com/firebasejs/6.6.0/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/6.6.0/firebase-auth.js"></script>
</head>

<body>
  <h1>This text will be copied to the target HTML, but covered by flutter web app</h1>
</body>

</html>