【问题标题】:Mimicking build_runner serve on a nodeJs server模仿 nodeJs 服务器上的 build_runner 服务
【发布时间】:2018-06-26 14:50:23
【问题描述】:

由于几天前 Dartium 即将到期,我觉得有必要从 dart 1.24.3 迁移到 Dart2,尽管它仍处于开发阶段。

我在这样做时遇到了一些困难,其中之一与我的应用程序的架构有关。

我运行一个 nodeJs 服务器,它还充当带有客户端 dart 的网络服务器。 我在使用新的 dart SDK 时遇到的问题是,为了在 Chrome 中读取 .dart 文件,必须使用 webdev servebuild_runner serve 提供这些文件。

显然,这两个命令充当文件服务器,这不是我想要的,因为我使用的是 nodeJS 服务器。

通过使用build_runner watch,我想我可以在以下目录中的 .dart.js 中构建和监视 .dart 文件:

.dart_tool/build/generated//lib

我还可以从我的 nodeJS 服务器为它们提供服务。剩下的是包目录,我似乎找不到 pub 服务获取以下包文件的位置:

/packages/$sdk/dev_compiler/amd/require.js /packages/$sdk/dev_compiler/amd/dart_sdk.js

有人知道 build_runner serve 做什么来包含它们吗?

谢谢,

【问题讨论】:

    标签: dart dart-pub


    【解决方案1】:

    在开发过程中使用不同的服务器有 2 个选项。

    1. 在不同的端口上运行build_runner serve 并将来自其他服务器的请求代理到它。这样做的好处是可以在构建过程中延迟请求,这样您就不会得到一组不一致的资产。
    2. 运行build_runner watch --output web:build 并使用创建的build/ 目录提供文件。这将包括一个 build/packages 目录,其中包含这些文件。

    【讨论】:

    • 谢谢您,--output web:build 非常棒。
    【解决方案2】:

    这些文件来自 dart sdk 本身的 lib 目录。

    请注意,还有另一个选项,即使用 build_runner 中的 -o 选项。这将创建一个包含源文件和生成文件的合并目录,您可以直接提供该目录,而无需依赖任何内部文件布局。

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      • 2017-08-28
      • 2018-03-02
      • 1970-01-01
      相关资源
      最近更新 更多