如何使用 dart 包部署 dart web 应用程序?
Posted
技术标签:
【中文标题】如何使用 dart 包部署 dart web 应用程序?【英文标题】:how to deploy dart web app with dart packages? 【发布时间】: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 应用程序?
-
我必须在网络服务器上创建一个目录
packages
吗?
我必须将包my_hello.dart
复制到网络服务器吗?
packages/my_hello/...
或者 Dartium 是否能够解决给定 pubspec.yaml
的依赖关系?
【问题讨论】:
***.com/questions/24672090 展示了如何配置和使用 dart2dart。 【参考方案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
【讨论】:
以上是关于如何使用 dart 包部署 dart web 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
部署颤振到 github 页面给出“带有大写的存储库名称”不是有效的 Dart 包名称
App Engine + Polymer.dart 带有 hashbang 的单页 Web 应用路由
如何在 Dart / Flutter 中使用另一个文件的函数?
Dart 如何编写一个简单的 web-socket echo 应用程序