如何在Git Pages中部署AngularDart网页?

时间:2016-12-23 21:11:56

标签: angular dart github-pages angular-dart

默认情况下,Angular会将pub serve root / web / 一起部署为 index.html 的根文件夹。 GitHub(在gh-pages分支上)假定它位于根项目文件夹中。

有没有人在GitHub页面上看到过这个?我是否会被迫将代码从Dart转换为JS并使用Gi​​tHub文件夹结构?

4 个答案:

答案 0 :(得分:2)

使用peanut

一次性安装:

pub global activate peanut

使用:

cd path/to/my_angular_project
peanut

gh-pages分支上传到github:

git push origin --set-upstream gh-pages

答案 1 :(得分:1)

您需要配置HashLocationStrategy

请参阅Location and HashLocationStrategy stopped working in beta.16以使路由器正常工作。

root/web/作为根网络文件夹提供,因此应该没有区别。如果您将其添加到GH-Pages以使其不在root上,那么您需要设置<base href="/someDir">或提供const Provider(APP_BASE_HREF, useValue: '/someDir')需要提供。

答案 2 :(得分:1)

我已经提交https://github.com/dart-lang/angular2/issues/242,看看我们是否可以在AngularDart网站或类似网站上获得如何执行此操作的具体示例。

我们的一位名为_.keyBy的开发人员提供的实用程序可以提供帮助:

https://pub.dartlang.org/packages/peanut

答案 3 :(得分:0)

所以,这不是最顺畅的,但是考虑到jonrsharpe的建议(GitHub用于静态网页),我确保抓住 dart2js transformer,把它扔进我的< em> pubspec.yaml :

transformers: - $dart2js: minify: true

然后运行 pub build 。这给了我一个 build 文件夹中的JS形式的网页。

我的pubspec中已经有- dart_to_js_script_rewriter,但我认为可以使用 pub serve 动态使用,以便在JS中查看。

非平滑性来自于我将这些新构建的文件移动到根项目文件夹(对于GitHub)并且必须将项目名称附加到 index.html 中的任何文件引用:

  • /project/style.css
  • /project/main.dart.js

这产生了一个成功的GitHub页面(当然在 gh-pages 分支上)。

旁注:
位置和HashLocationStrategy都在那里,但我不相信他们正在做任何事情,除了正确编译。

peanut dart2js构建并将文件复制到root中,而无需切换 gh-pages 。挺棒的。它似乎在过程中删除了某些文件和文件夹(如README文件),但它是一个不错的小酒吧包。