默认情况下,Angular会将pub serve
与 root / web / 一起部署为 index.html 的根文件夹。 GitHub(在gh-pages分支上)假定它位于根项目文件夹中。
有没有人在GitHub页面上看到过这个?我是否会被迫将代码从Dart转换为JS并使用GitHub文件夹结构?
答案 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
的开发人员提供的实用程序可以提供帮助:
答案 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 中的任何文件引用:
这产生了一个成功的GitHub页面(当然在 gh-pages 分支上)。
旁注:
位置和HashLocationStrategy都在那里,但我不相信他们正在做任何事情,除了正确编译。
peanut dart2js构建并将文件复制到root中,而无需切换 gh-pages 。挺棒的。它似乎在过程中删除了某些文件和文件夹(如README文件),但它是一个不错的小酒吧包。