【问题标题】:how to deploy dart web app with dart packages?如何使用 dart 包部署 dart web 应用程序?
【发布时间】:2013-02-20 22:50:43
【问题描述】:

考虑以下 dart web 应用程序:

import "dart:html";
// assume this is a custom library hosted somewhere on github, i.e. 
// there is a pubspec.yaml entry
//
// dependencies:
//    my_hello:
//      git: http://github.com/foo/my_hello.git
//
import "package:my_hello/my_hello.dart" as hello;

main() {
  query("#message").innerHtml = hello.message;
}

如何将其部署在 Web 服务器上的某个位置(例如作为 github 页面),以便在 Dartium 中用作基于 dart 的 Web 应用程序?

  1. 我必须在网络服务器上创建一个目录packages吗?
  2. 我必须将包my_hello.dart 复制到网络服务器吗?

    packages/my_hello/...

    或者 Dartium 是否能够解决给定 pubspec.yaml 的依赖关系?

【问题讨论】:

标签: dart dart2js


【解决方案1】:

用途:

$ pub build [--no-minify]

当您准备好部署您的网络应用程序时,请使用 pub build。当您运行 pub build 时,它会为当前包及其所有依赖项生成资产,并将它们放入名为 build 的新目录中。

来自Seth Ladd's post on Google+(不再可用)。

【讨论】:

    【解决方案2】:

    目前,您需要部署 packages 文件夹以及您的代码。 Dartium 不使用pubspec.yaml

    目前正在开发中,有一个dart2dart 工具,它与dart2js 做类似的事情——摇树、缩小,并将所有代码放入一个可部署的源文件中。有关说明,请参阅此 dartbug issue 和 Google 群组上的此 recent discussion

    这很可能构成pub deploy 场景的一部分,用于打包您的应用以部署在网络服务器上。

    另见:what could be a deployment strategy with pubspec on dart 和:Creating a Javascript deployment set from Dart2js output

    更新Dartbug 6006 目前正在开发中,并表示它的工作方式如下:

    它将“web”中的所有内容复制到部署目录中,在所有入口点上运行 dart2dart 和 dart2js,并清理 Dart 源文件。这将生成一个无需任何额外步骤即可提供服务的目录。

    【讨论】:

      【解决方案3】:

      我个人一直在使用 rsync,因为它简单快速

      cd web
      rsync -RLr . ../../deploy/
      

      【讨论】:

        【解决方案4】:

        这是一个实用脚本,它将 Web 应用所依赖的包复制到部署目录 - 请参阅 Gist

        【讨论】:

          猜你喜欢
          • 2013-08-27
          • 2014-12-27
          • 2013-12-22
          • 1970-01-01
          • 1970-01-01
          • 2013-07-05
          • 1970-01-01
          • 1970-01-01
          • 2015-01-08
          相关资源
          最近更新 更多