Flutter Web:使用 flutter build web 构建时缺少 main.dart.js 和 JavaScript 文件,但使用 flutter run 可以正常工作

dro*_*gel 4 javascript dart dart-webui flutter flutter-web

我遇到了 Flutter web 的一个问题,其中flutter build web在任何项目中运行时都不会生成 JavaScript 文件,导致项目只是加载一个空白页面。

我目前在 1.18.0 版本的 beta 频道上,这发生在每个项目中,即使是 Flutter 生成的默认计数器项目flutter create .。不会抛出任何警告或错误,如果我使用 运行 web 项目flutter run --release -d chrome,一切都会按预期工作。

我按照文档中使用 Flutter 构建 Web 应用程序一文中描述的步骤进行了操作,我记得半年前我能够按照相同的步骤使用 Flutter 构建和托管 Web 项目,没有任何问题。

我的 Flutter 配置和 SDK 似乎已经到位。如果我跑,这就是我得到的flutter doctor -v

[?] Flutter (Channel beta, 1.18.0-11.1.pre, on Microsoft Windows [Versión 10.0.18363.836], locale es-ES)
    • Flutter version 1.18.0-11.1.pre at D:\Programas\Flutter\flutter
    • Framework revision 2738a1148b (4 weeks ago), 2020-05-13 15:24:36 -0700
    • Engine revision ef9215ceb2
    • Dart version 2.9.0 (build 2.9.0-8.2.beta)


[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at C:\Users\diego\AppData\Local\Android\sdk
    • Platform android-28, build-tools 28.0.3
    • Java binary at: D:\Programas\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

[?] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[?] Android Studio (version 3.6)
    • Android Studio at D:\Programas\Android Studio
    • Flutter plugin version 46.0.1
    • Dart plugin version 192.8052
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

[?] Connected device (2 available)
    • Web Server • web-server • web-javascript • Flutter Tools
    • Chrome     • chrome     • web-javascript • Google Chrome 83.0.4103.61
Run Code Online (Sandbox Code Playgroud)

这里可能有什么问题?为什么没有生成 JavaScripts 文件?

小智 14

请检查以下文件夹:

./your-app/build/web

我遇到了同样的问题,正在检查错误的文件夹 ( ./your-app/web)。


小智 9

  1. 确保从以下位置复制文件:
    ./your-app/build/web

  2. 如果错误仍然存​​在,请更新index.html 示例

    我在网络服务器上的 flutter 项目:webserver/flutter_project/index.html
    b。打开index.html
    c. 更新<base href="/"><base href="/flutter_project/">

  • 您还可以在 web/index.html 而不是 build/web/index.html 中更新 `&lt;base href="/"&gt;`,以便 *source* index.html 文件包含正确的基本路径。这适用于“flutter run”和“flutter build web”。 (2认同)

小智 5

就我而言,flutter.js在构建网络时不会生成该文件。我所做的就是跑flutter clean然后flutter build web再跑。您应该会看到丢失的 js 文件,并确保检查build/web不是web在根目录上。