Dart WebComponent上不允许使用绝对路径

时间:2014-01-23 07:57:37

标签: dart dart-polymer web-component

到目前为止,我的小Dart / Polymer样品效果很好。 (GitHub)

这是我使用的yaml文件:

name: PolymerHelloWorld
environment:
  sdk: any
dependencies:
  browser: any
  polymer: any
  shadow_dom: any
  mdv: any

transformers:
-  polymer:
    entry_points:
    - web/index.html
    - web/hello-world/hello-world.html
    - web/stopwatch/stopwatch.html

“pub build”产生:(在GH下再次生活) enter image description here

根据我的理解,我现在有2个web组件:hello-world和stopwatch

我做了第二个项目,完全独立于PolymerHelloWorld。 这是index.html: enter image description here

我收到此错误消息


pub build
Building PolymerSecondWorld...
[Error from polymer (Linter) on PolymerSecondWorld|web/index.html]:
web/index.html:4:5: absolute paths not allowed: "https://rawgithub.com/MikeMitterer/DART-Sample-PolymerHelloWorld/master/build/hello-world/hello-world.html"

这不是webcomponents的想法吗?我错过了什么吗?

[更新]
我在GH-Repo中添加了DART-Sample-PolymerElementConsumer。它包括整个聚合物的东西......这个样品一个Dart样品。它使用聚合物来导入组件。至少 - 它试图......

以下是尝试运行的HTML:
https://rawgithub.com/MikeMitterer/DART-Sample-PolymerElementConsumer/master/web/index.html

CODEVIEW:
https://raw.github.com/MikeMitterer/DART-Sample-PolymerElementConsumer/master/web/index.html

HTML-Page显示没有错误消息 - 什么都没有。只是标题,但没有来自webcomponent。

1 个答案:

答案 0 :(得分:0)

如果要导入Polymer元素,则必须使用Dart包(例如pub.dartlang.org) 您将包添加到pubspec.yaml以将包导入项目中 然后您可以从packages目录中导入元素/组件。

聚合物对Dart项目中的导入路径也非常敏感 而你最终尝试的东西将无效 (这可以在JavaScript中工作) 但这需要执行在运行时加载的代码(包含在加载的组件中) 哪个Dart还不支持。所有代码都必须在编译时可用。

关于这个主题的一些讨论:

修改

我看了你的代码并试图理解你的评论并相应地扩展了我的答案。

为了能够从包中导入组件,组件必须位于要导入的包的lib目录中。 使用(导入)元素的网页必须是Dart项目(包),它在'pubspec.yaml'中导入组件包。对于Web应用程序(index.html,...)web是包中的正确目录。