1

到目前为止,我的小 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下再次生活) 在此处输入图像描述

据我了解,现在我有 2 个 web 组件:hello-world 和秒表

我做了第二个项目,完全独立于 PolymerHelloWorld。这是 index.html: 在此处输入图像描述

我收到此错误消息


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 的想法吗?我错过了什么吗?

[更新]
我将DART-Sample-PolymerElementConsumer添加到我的 GH-Repo 中。它包括整个聚合物材料......这个样品不是飞镖样品。它使用聚合物来导入组件。至少 - 它试图...

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

代码视图:
https ://raw.github.com/MikeMitterer/DART-Sample-PolymerElementConsumer/master/web/index.html

HTML 页面没有显示错误消息 - 没有。只是标题,但没有来自 web 组件。

4

1 回答 1

0

如果你想导入 Polymer 元素,它们必须在 Dart 包中(例如 pub.dartlang.org)。
您将包添加给您pubspec.yaml以将包导入您的项目,
然后您可以从包目录中导入元素/组件。

Polymer 对 Dart 项目中的导入路径也非常敏感,
并且像您尝试过的那样绝对行不通
(尽管这可以在 JavaScript 中工作)但这需要执行在运行时加载的代码(包含在加载的组件中),而 Dart还不支持。所有代码都必须在编译时可用。

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

编辑

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

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

于 2014-01-23T08:04:27.580 回答