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

How do I deploy an AngularDart web page in Git Pages?

默认情况下,Angular 部署 pub serve root/web/ 作为 [=21= 的根文件夹]。 GitHub(在 gh-pages 分支上)假设它在根项目文件夹中。

有没有人见过用 GitHub 页面完成的?我会被迫将代码从 Dart 转换为 JS 并使用 GitHub 文件夹结构吗?

您需要配置 HashLocationStrategy

参见 使路由器正常工作。

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

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

我们的一位开发人员开发了一个名为 peanut 的实用程序,可以帮助:

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

使用peanut.

一次性安装:

pub global activate peanut

使用:

cd path/to/my_angular_project
peanut

gh-pages 分支上传到 github:

git push origin --set-upstream gh-pages

所以,这不是最顺利的,但采纳了 jonrsharpe 的建议(GitHub 适用于静态网页),我确保获取 dart2js transformer, 把它扔进我的 pubspec.yaml:

transformers: - $dart2js: minify: true

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

我的 pubspec 中已经有 - dart_to_js_script_rewriter,但我认为这是即时使用的,使用 pub serve,在 JS 中查看。

不流畅是因为我将那些新建的文件移到了根项目文件夹中(对于 GitHub),并且不得不将项目名称附加到 [=30= 中的任何文件引用中]index.html:

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

这产生了一个成功的 GitHub 页面(当然在 gh-pages b运行ch 上)。

旁注:
Location 和 HashLocationStrategy 就在那里,但我不相信它们除了正确编译之外没有做任何事情。

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