2014-01-23 3 views
1

Мой маленький образец Dart/Polymer работает до сих пор. (GitHub)Абсолютные пути не допускаются на Dart WebComponent

Вот файл 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 

"паб сборки" производит: (Live снова под GH) enter image description here

Из моего понимания теперь у меня есть 2 веб-компоненты: hello- мир и секундомер

Я сделал второй проект, полностью независимая форма 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" 

Разве это не идея веб-компоненты? Я что-то пропустил?

[Update]
Я добавил DART-Sample-PolymerElementConsumer к моему GH-Репо. Он включает весь полимерный материал ... Этот образец не a Dart-Sample. Он использует полимер для импорта компонента. По крайней мере, - он пытается ...

Вот 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-страницы-не показывает сообщение об ошибке - ничего. Просто заголовок, но ничего от веб-компонента.

ответ

0

Если вы хотите импортировать элементы полимера, они должны быть в пакете Дарт (например, pub.dartlang.org).
Вы добавляете пакет к вам pubspec.yaml, чтобы импортировать пакет в свой проект и
, затем вы можете импортировать элементы/компоненты из каталога пакетов.

полимер также очень деликатная о путях импорта в рамках проекта Dart
и что-то, как вы пытались окончательно не будет работать
(это может работать в JavaScript, хотя) , но для этого потребуется выполнить код (входит в загруженный компонент), загруженный во время выполнения , которого Dart пока не поддерживает. Весь код должен быть доступен во время компиляции.

Некоторые дискуссии об этой теме:

EDIT

Я посмотрел ваш код и попытался понять ваш комментарий и, соответственно, расширил свой ответ.

Чтобы иметь возможность импортировать компоненты из пакета, компоненты должны находиться в каталоге lib пакета, который вы хотите импортировать. Веб-страница, использующая (импортирующие) элементы, должна быть проектом Dart (package), который импортирует компонентный пакет в 'pubspec.yaml'. Для веб-приложения (index.html, ...) web - это правильный каталог в пакете.

+0

Именно поэтому я попытался импортировать скомпилированный привет-мир. Веб-компонент должен быть независимым от языка + набор инструментов (framework). –

+0

Хорошо, но вы можете импортировать только из каталога пакетов, например, «packages/somecomponentpackage/theelement.html». Я также не вижу, где у вас есть DART-SamplePolymerHelloWorld в вашем pubspec.yaml. –

+0

@MikeMitterer Я продлил свой ответ. –

Смежные вопросы