[编辑] 如果我在我的项目中运行 webdev serve 会出现
[WARNING] Throwing away cached asset graph because the build phases have changed. This most commonly would happen as a result of adding a new dependency or updating your dependencies.
[INFO] Cleaning up outputs from previous builds. completed, took 6.6s
[INFO] Building new asset graph completed, took 16.7s
[INFO] Checking for unexpected pre-existing outputs. completed, took 3ms
[INFO] Serving `web` on http://127.0.0.1:8080
[WARNING]build_web_compilers:entrypoint on web/main.dart: Skipping compiling retgoo_internal|web/main.dart with ddc because some of its
transitive libraries have sdk dependencies that not supported on this platform:
retgoo_internal|lib/protocol/http_non.dart
https://github.com/dart-lang/build/blob/master/docs/faq.md#how-can-i-resolve-skipped-compiling-warnings
[INFO] Running build completed, took 19.0s
[INFO] Caching finalized dependency graph completed, took 473ms
[INFO] Succeeded after 19.5s with 634 outputs (3522 actions)
但是当我尝试在浏览器中打开时,只会出现一个空白页面,而当我尝试开始调试时,只会启动并出现一个空白页面。发射没有停止。 build.yaml 文件中有警告的教程,但是当我搜索很多 build.yaml 文件时......我应该修复哪个文件?
最佳答案
在您的 wanrnig 消息中明确指出,由于某些传递性 sdk 依赖性,main.dart 未编译。
[WARNING]build_web_compilers:entrypoint on web/main.dart: Skipping compiling retgoo_internal|web/main.dart with ddc because some of its transitive libraries have sdk dependencies that not supported on this platform:
retgoo_internal|lib/protocol/http_non.dart
这仅仅意味着你的 flutter 相关 dart 代码都没有被编译成 javascript。据我所知,flutter-web 可以做到这一点。
- 它将使用 flutter 框架编写的 dart 代码编译成 javascript。
- 这意味着 main.dart 和其他 dart 文件编译成 main.dart.js 和其他 chunks.js 文件。
- 然后在 web/index.html 中加载这个 javascript 文件,它进一步创建和处理要在页面中呈现的新 dom 元素。诸如通过 React 或 Angular 创建的单页应用程序之类的东西。
一旦您修复了 pubspec.yaml 中的传递依赖项(可能由您作为依赖项添加的任何其他库引入),这个问题就会得到解决。
由于 flutter-web 不支持任何插件,因此必须通过拉取您希望包含的插件的源代码来手动完成,放置在源目录中并将其中的导入语句从 package:flutter/更改为包:flutter_web。这不是微不足道的,但仍然可以实现。
关于flutter - 如何解决 flutter for web 中的 web 开发服务器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56865013/