如何在Dartium中正确打开Dart应用程序?
我正在做this Angular2-Dart教程。
要获得有效的应用程序,我可以运行pub build
命令,然后在build/web
目录上启动http服务器,appciation将正常运行。
另外,我可以运行pub serve
命令,然后在浏览器中打开localhost:8080
地址,等待一段时间进行Dart编译,应用程序也可以运行。
如何在Dartium中正确运行应用程序?我将转到IDEA中的web/index.html
文件,按Alt + F2(打开变体以打开应用程序)并按下dartium。我现在没有看到工作申请。我只看到Loading...
消息(因为我的html是<my-app>Loading...</my-app>
)。
此外,在开发Dart应用程序时使用Dartium Web浏览器有什么好处?例如,pub serve
在每次刷新页面时重新编译Dart代码。这花了很多时间。可能我不会花这么多时间与Dartium一起编译?
一种方法,我可以正确打开我的Dart应用程序是dartium是:
web
目录上设置http服务器(index.html文件在这里)。localhost:8086
。一段时间后,应用程序正确打开。我的intellij想法可能存在一些问题吗?
更新
当我尝试使用Dartium打开pub serve
时,我在IDEA的index.html
标签中显示了此内容:
C:\tools\dart-sdk\bin\pub.bat serve web --port=53852
Loading source assets...
Loading angular2 and dart_to_js_script_rewriter transformers...
Serving ng2_hero_app web on http://localhost:53852
[web] GET index.html => (cached) ng2_hero_app|web/index.html
[web] GET Served 9 cached assets.
Build completed successfully
[web] GET Served 2 cached assets.
[web] GET Served 3 cached assets.
[web] GET packages/angular2/src/core/metadata.dart => (cached) angular2|lib/src/core/metadata.dart
[web] GET packages/angular2/src/core/util.dart => (cached) angular2|lib/src/core/util.dart
[web] GET packages/angular2/src/core/di.dart => (cached) angular2|lib/src/core/di.dart
[web] GET packages/angular2/src/facade/facade.dart => (cached) angular2|lib/src/facade/facade.dart
[web] GET packages/angular2/src/core/application_ref.dart => (cached) angular2|lib/src/core/application_ref.dart
[web] GET packages/angular2/src/core/application_tokens.dart => (cached) angular2|lib/src/core/application_tokens.dart
[web] GET packages/angular2/src/core/zone.dart => (cached) angular2|lib/src/core/zone.dart
[web] GET packages/angular2/src/core/render.dart => (cached) angular2|lib/src/core/render.dart
[web] GET packages/angular2/src/core/linker.dart => (cached) angular2|lib/src/core/linker.dart
[web] GET packages/angular2/src/core/debug/debug_node.dart => (cached) angular2|lib/src/core/debug/debug_node.dart
[web] GET packages/angular2/src/core/testability/testability.dart => (cached) angular2|lib/src/core/testability/testability.dart
[web] GET packages/angular2/src/core/change_detection.dart => (cached) angular2|lib/src/core/change_detection.dart
[web] GET packages/angular2/src/core/platform_directives_and_pipes.dart => (cached) angular2|lib/src/core/platform_directives_and_pipes.dart
[web] GET packages/angular2/src/core/platform_common_providers.dart => (cached) angular2|lib/src/core/platform_common_providers.dart
[web] GET packages/angular2/src/core/application_common_providers.dart => (cached) angular2|lib/src/core/application_common_providers.dart
[web] GET packages/angular2/src/core/reflection/reflector.dart => (cached) angular2|lib/src/core/reflection/reflector.dart
[web] GET packages/angular2/src/core/reflection/types.dart => (cached) angular2|lib/src/core/reflection/types.dart
[web] GET packages/angular2/src/core/reflection/platform_reflection_capabilities.dart => (cached) angular2|lib/src/core/reflection/platform_reflection_capabilities.dart
[web] GET packages/angular2/src/facade/lang.ngfactory.dart => (cached) angular2|lib/src/facade/lang.ngfactory.dart
[web] GET packages/angular2/src/platform/browser_common.ngfactory.dart => (cached) angular2|lib/src/platform/browser_common.ngfactory.dart
[web] GET packages/angular2/core.ngfactory.dart => (cached) angular2|lib/core.ngfactory.dart
[web] GET packages/angular2/src/core/angular_entrypoint.ngfactory.dart => (cached) angular2|lib/src/core/angular_entrypoint.ngfactory.dart
[web] GET packages/angular2/src/facade/collection.dart => (cached) angular2|lib/src/facade/collection.dart
[web] GET packages/angular2/src/core/change_detection/change_detection.dart => (cached) angular2|lib/src/core/change_detection/change_detection.dart
[web] GET packages/angular2/src/core/metadata/di.dart => (cached) angular2|lib/src/core/metadata/di.dart
[web] GET Served 2 cached assets.
当我尝试使用Chrome打开index.html时,我收到了此文:
C:\tools\dart-sdk\bin\pub.bat serve web --port=54019
Loading source assets...
Loading angular2 and dart_to_js_script_rewriter transformers...
Serving ng2_hero_app web on http://localhost:54019
[web] GET index.html => (cached) ng2_hero_app|web/index.html
[web] GET Served 3 cached assets.
Build completed successfully
答案 0 :(得分:2)
在Dartium中运行和调试
在IDEA(或WebStorm)中,您只需右键点击web/index.html
,然后选择 Run (index.html)
或 Debug (index.html)
和IDEA应该
pub serve
我不知道Alt + F2
做了什么,因为有各种键盘快捷键设置。
在Chrome,Firefox,Safari中运行......
您还应该能够将网址从Dartium复制到Chrome或其他浏览器,而pub serve
可以提供Dart-to-JavaScript转换后的应用程序。这比pub build
更有效,因为它不需要在修改源之后重建整个应用程序。它可以重用代码没有改变的缓存部分,因此速度更快。
已知问题
最近出现了一个IDEA(和WebStorm)问题导致了与您描述的行为类似的行为。请检查您是否有最新的IDEA版本。
答案 1 :(得分:1)
我正在使用IntelliJ IDEA 2016.3,右键单击web / index.html时仍然没有运行/调试。我的项目被识别为Dart项目(查看pubspec.yaml时会显示Pub操作)。
当我在浏览器中打开| Dartium时会发生两件事:
1)问题描述
Dartium打开,其中显示永久加载的网址http://localhost:63342/enighet_register/web/index.html?_ijt=kg22cgo907ps6ivcv3sm5dmvt1,因为控制台日志显示为Dartium无法从网络目录中找到其他资源(例如通过http://localhost:63342/main.dart请求)。如果比较这两个URL,您会注意到第一个保留了项目名称和web目录,而第二个保留了index.html。这似乎是问题的根源。 (main.dart可通过http://localhost:63342/enighet_register/web/main.dart)
获取2)解决方法
在Dartium中打开文件也会启动IntelliJ中的Pub Serve选项卡(在Dart Analysis-和Terminal-tab旁边)。在这里,我们得到的线: “在http://localhost:39030上提供enighet_register网页” 在Dartium(或其他浏览器)中打开此URL可以很好地工作(端口是动态的,因此每次检查输出)。
不确定您是否可以在IntelliJ中调试,但您可以在Dartium中设置断点和调试!