1

[编辑] 如果我在我的项目中运行 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 文件时......我应该修复哪个文件?

4

1 回答 1

0

在您的 wanrnig 消息中,由于某些可传递的 sdk 依赖关系,明确说明了 main.dart 未编译。

[警告]build_web_compilers:web/main.dart 上的入口点:跳过使用 ddc 编译 retgoo_internal|web/main.dart,因为它的一些传递库具有此平台不支持的 sdk 依赖项:

retgoo_internal|lib/protocol/http_non.dart

这仅仅意味着你的 Flutter 相关的 dart 代码都没有被编译为 javascript。在我有限的知识中,flutter-web 可以做到这一点。

  1. 它将使用 Flutter 框架编写的 dart 代码编译成 javascript。
  2. 这意味着将 main.dart 和其他 dart 文件编译成 main.dart.js 和其他 chunks.js 文件。
  3. 然后在 web/index.html 中加载这个 javascript 文件,它进一步创建和处理要在您的页面中呈现的新 dom 元素。诸如由 react 或 angular 创建的单页应用程序之类的东西。

一旦您修复了 pubspec.yaml 中的传递依赖项,这些依赖项可能由您添加为依赖项的任何其他库引入,此问题将得到解决。

由于 flutter-web 不支持任何插件,但必须手动完成,方法是拉取您希望包含的插件的源代码,放置在您的源目录中,并将其中的导入语句从 package:flutter/ 更改为 package:flutter_web . 这不是微不足道的,但仍然可以实现。

于 2019-08-19T11:48:22.767 回答