Как-то я не смог создать свой самый первый пример веб-компонентов Дартс. Проект очень прост и взят от Seth blog.Dart simple webcomponent confusion
Первый файл build.dart
должен быть размещен в корневой папке проекта (не в папке web/
) < - это правда?
Вот код:
Project
\--ui
\-- test_component.html
<!DOCTYPE html>
<html lang="en">
<body>
<element name="x-click-counter" constructor="CounterComponent" extends="div">
<template>
<button on-click="increment()">Click me</button>
<span>(click count: {{count}})</span>
</template>
<script type="application/dart" src="test_component.dart"></script>
</element>
<!-- more below... -->
</body>
</html>
\-- test_component.dart
library test_component;
import 'package:web_ui/web_ui.dart';
class CounterComponent extends WebComponent
{
int count = 0;
void increment(e)
{
count++;
}
}
\-- web
\-- index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="components" href="ui/test_component.html">
<title>Dart • TodoMVC</title>
</head>
<body>
<x-click-counter></x-click-counter>
<script type="application/dart">main() {}</script>
</body>
</html>
\-- build.dart
import 'dart:io';
import 'packages/web_ui/component_build.dart';
void main()
{
build(new Options().arguments, ['web/index.html']);
}
Только после того, как я переехал build.dart
к корневой папке странное произошла ошибка:
--- 00:51:50 01/04/2013 build.dart - не машина --changed = Web \ index.html --- файл:/C: /Projects/ProtonUiComponents/build.dart build.dart возвращается код ошибки 255
Uncaught ошибка: Class '_file' не имеет метод экземпляра 'open' с соответствующими аргументами.
NoSuchMethodError: неправильное количество аргументов, переданных в метод с именем 'открытой' Получателя: экземпляр '_file @ 0x1da10ec4' Попробованной вызова: открыт (режим: экземпляр 'FileMode') Найдено: открыт (режим) Stack Трассировка:
#0 Object.noSuchMethod (dart:core-patch:1884:25)
#1 ConsoleFileSystem.writeString (file:///C:/Projects/ProtonUiComponents/packages/web_ui/src/file_system/console.dart:22:43)
#2 writeFile (file:///C:/Projects/ProtonUiComponents/packages/web_ui/dwc.dart:103:27)
#3 emitFiles.<anonymous closure> (file:///C:/Projects/ProtonUiComponents/packages/web_ui/dwc.dart:91:35)
#4 List.forEach (dart:core-patch:1219:8)
#5 emitFiles (file:///C:/Projects/ProtonUiComponents/packages/web_ui/dwc.dart:91:18)
#6 run.<anonymous closure>.<anonymous closure> (file:///C:/Projects/ProtonUiComponents/packages/web_ui/dwc.dart:85:29)
#7 _ThenFuture._sendValue (dart:async:463:24)
#8 _FutureImpl._setValue (dart:async:361:26)
#9 _FutureListenerWrapper._sendValue (dart:async:221:21)
#10 _FutureImpl._setValue (dart:async:361:26)
#11 _FutureImpl._setOrChainValue (dart:async:437:16)
#12 _ThenFuture._sendValue (dart:async:473:21)
#13 _FutureImpl._setValue (dart:async:361:26)
#14 _FutureListenerWrapper._sendValue (dart:async:221:21)
#15 _FutureImpl._setValue (dart:async:361:26)
#16 _FutureImpl._setOrChainValue (dart:async:437:16)
#17 _ThenFuture._sendValue (dart:async:473:21)
#18 _FutureImpl._setValue (dart:async:361:26)
#19 _CompleterImpl.complete (dart:async:190:21)
#20 _FutureImpl._FutureImpl.wait.<anonymous closure> (dart:async:273:29)
#21 _ThenFuture._sendValue (dart:async:463:24)
#22 _FutureImpl._setValue (dart:async:361:26)
#23 _CatchErrorFuture._sendValue (dart:async:485:14)
#24 _FutureImpl._setValue (dart:async:361:26)
#25 Stream.reduce.<anonymous closure> (dart:async:699:23)
Если я бегу build.dart
вручную я получаю и ошибка в dwc.dart
:
type 'ConsoleFileSystem' is not a subtype of type 'FileSystem' of 'fileSystem'.
то index.html
может не запускаться вовсе (не в Dartium ни в Javascript) с ошибкой Dart Editor:
Что я делаю неправильно?
Update:
- Я бегу на Windows 7 x64
- Dart Editor версия 0.4.2_r20259
- Dart SDK версии 0.4.2.8_r20259
Какую версию Dart-редактор вы используете? Мое первое предположение было бы несоответствие версии (слишком старая версия редактора или аналогичная). –
Добавлено в 'update' – Jasper
Текущая версия Dart-Editor - 20602 (http://www.dartlang.org/docs/editor/). Попробуйте обновить и проверьте, сохраняется ли ошибка. Насколько я вижу на скриншоте, рядом с кнопкой «Отправить отзыв» есть зеленая стрелка. Таким образом, также должно быть доступно автоматическое обновление. –