6

考虑以下 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在 Web 服务器上创建一个目录吗?
  2. 我必须将包复制my_hello.dart到 Web 服务器吗?

    packages/my_hello/...

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

4

4 回答 4

6

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

目前正在开发中,有一个dart2dart工具可以做类似的事情dart2js——摇树、缩小,并将所有代码放入一个可部署的源文件中。请参阅此dartbug 问题以获取说明以及此最近关于 google 群组的讨论。

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

另请参阅:在 dart 上使用 pubspec 可能是什么部署策略 和:从 Dart2js 输出创建 Javascript 部署集

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

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

于 2013-03-06T08:48:52.903 回答
3

采用:

$ pub build [--no-minify]

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

来自Seth Ladd 在 Google+ 上的帖子(不再可用)。

于 2013-11-15T21:26:40.517 回答
2

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

cd web
rsync -RLr . ../../deploy/
于 2013-03-07T01:55:57.730 回答
0

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

于 2013-03-06T14:26:28.573 回答