custom_element_apigen: выдает ошибку при импорте данных из бумаги в Dart
Следуя шагам, согласен с https://github.com/dart-lang/custom-element-apigen:
- узел /npm (v3.5.3) установлен
- Бауэр (v1.7.2) установлен
- гидролиз (v1.21.4) установлен
.bowerrc
создано со следующим содержанием
{
"directory": "lib/src"
}
bower install --save paper-datatable
( https://github.com/David-Mulder/paper-datatable) выполненоapigen.yaml
создано со следующим содержанием
files_to_generate:
- paper-datatable\paper-datatable.html
- библиотека custom_element_apigen добавить на pubspec.y aml
dependencies:
custom_element_apigen: ^0.2.1+1
pub run custom_element_apigen:update apigen.yaml
Команда выполнена.
ОШИБКА В ЭТОЙ КОМАНДЕ
Первая ошибка: на Windows не работает. Подробности на https://github.com/dart-lang/custom-element-apigen/issues/43.
В качестве обходного пути я создаю process_elements.bat
(вместо process_elements.sh
) со следующим содержанием:
node packages\custom_element_apigen\src\js\analyze.js %1
Я редактирую generate_dart_api.dart
и изменил вызов .bat
вместо .sh
чтобы:
'D:/Users/Administrador/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/custom_element_apigen-0.2.1+1/lib/src/js/process_elements.bat', [inputPath]);
Затем я получил обходной путь!
Вторую ошибку я не разрешил!
Теперь возникает следующая проблема, когда команда c:\dart-sdk\bin\pub run custom_element_apigen:update apigen.yaml
выполняется:
D:\Users\Administrador\WebstormProjects\Facilis>c:\dart-sdk\bin\pub run custom_e
lement_apigen:update apigen.yaml
←[32m1 of 1: lib\src\paper-datatable\paper-datatable.html←[0mUnhandled exception
:
Failed to parse element files!
exit code: 0
stderr:
stdout:
D:\Users\Administrador\WebstormProjects\Facilis>node packages\custom_element_api
gen\src\js\analyze.js lib\src\paper-datatable\paper-datatable.html
{"imports":["lib/src/polymer/polymer.html","lib/src/paper-datatable/paper-datata
ble-column.html","lib/src/paper-datatable/paper-datatable-edit-dialog.html","lib
/src/paper-datatable/datatable-icons.html","lib/src/paper-checkbox/paper-checkbo
x.html","lib/src/paper-tooltip/paper-tooltip.html"],"elements":{"PaperDatatable"
:{"name":"paper-datatable","properties":{"data":{"hasGetter":true,"hasSetter":tr
ue,"name":"data","type":"Array","description":"\nArray of objects containing the
data to be shown in the table.\n\n"},"multiSelection":{"hasGetter":true,"hasSet
ter":true,"name":"multiSelection","type":"Boolean","description":"\nWhether to a
llow selection of more than one row.\n\n"},"progress":{"hasGetter":true,"hasSett
er":true,"name":"progress","type":"Boolean","description":"\nWhether to show the
progress bar. As the progress bar is often not used in standalone\n`<paper-data
table>'s the `<paper-progress>` element isn't included by default and needs to b
e\nmanually imported.\n\n"},"resizeBehavior":{"hasGetter":true,"hasSetter":true,
"name":"resizeBehavior","type":"String","description":"\nOverflow, fixed or 'dyn
amic-columns'\n\n"},"selectable":{"hasGetter":true,"hasSetter":true,"name":"sele
ctable","type":"Boolean","description":"\nWhether to show checkboxes on the left
to allow row selection.\n\n"},"selectedItem":{"hasGetter":true,"hasSetter":true
,"name":"selectedItem","type":"Object","description":"\nIf `multi-selection` is
off then this contains the selected row.\n\n"},"selectedItems":{"hasGetter":true
,"hasSetter":true,"name":"selectedItems","type":"Array","description":"\nIf `mul
ti-selection` is on then this contains an array of the selected rows.\n\n"},"sel
ectedKey":{"hasGetter":true,"hasSetter":true,"name":"selectedKey","type":"Object
","description":"\nIf `multi-selection` is off then this contains the key of the
selected row.\n\n"},"selectedKeys":{"hasGetter":true,"hasSetter":true,"name":"s
electedKeys","type":"Array","description":"\nIf `multi-selection` then this cont
ains an array of selected row keys.\n\n"},"listeners":{"hasGetter":true,"hasSett
er":true,"name":"listeners","type":"Object","description":""},"observers":{"hasG
etter":true,"hasSetter":true,"name":"observers","type":"Array","description":""}
},"methods":{"customRowStyle":{"name":"customRowStyle","type":null,"description"
:"\nMethod that can be overwritten to apply a custom style to specific rows.\n\n
IMPORTANT: This is a property, not a method you should call directly.\n\t\t\t\t
","isVoid":true,"args":[{"name":"rowItem","description":""}]},"deselect":{"name"
:"deselect","type":null,"description":"\nDeselect the specified item. Ignore the
`notify` parameter.\n\n","isVoid":true,"args":[{"name":"item","description":""}
,{"name":"notify","description":""}]},"deselectAll":{"name":"deselectAll","type"
:null,"description":"\nDeselect all currently selected items. Ignore the `notify
` parameter.\n\t\t\t\t ","isVoid":true,"args":[{"name":"notify","description":""
}]},"filter":{"name":"filter","type":null,"description":"\nThe filter attribute
can be used to specify a filter which will be applied to the `data`.\nNote that
selections should fully ignore filtering, and a filter only affects which data i
s\nvisible.\n\nThe function takes three arguments: `item`, `key` and `items` per
the JS filter function.\n\nFor a demo please see [here](demo/filter.html).\n\nI
MPORTANT: This is a property, not a method you should call directly.\n\n","isVoi
d":true,"args":[]},"reload":{"name":"reload","type":null,"description":"\nIf you
have been changing data on the `data` property outside of the official Polymer
functions\ncalling this function *may* get you the updates you want.\n\t\t\t\t "
,"isVoid":true,"args":[]},"reset":{"name":"reset","type":null,"description":"\nH
ardcore reset of the entire element. Sets `data` to `[]` and resets all cells.\n
\t\t\t\t ","isVoid":true,"args":[]},"select":{"name":"select","type":null,"descr
iption":"\nSelect the specified item. Ignore the `notify` parameter.\n\n","isVoi
d":true,"args":[{"name":"item","description":""},{"name":"notify","description":
""}]},"sort":{"name":"sort","type":null,"description":"\nSort the specified colu
mn, where `column` is a reference to the actual `<paper-datatable-column>`\nelem
ent.\n\t\t\t\t ","isVoid":true,"args":[{"name":"column","description":""}]},"tog
gleAll":{"name":"toggleAll","type":null,"description":"\nTriggered by clicking t
he top left checkmark. If all are checked it will deselect all checked items.\nI
f some or none are checked it will select all items\n\t\t\t\t ","isVoid":true,"a
rgs":[]},"ready":{"name":"ready","type":null,"description":"","isVoid":true,"arg
s":[]}},"description":"\n# Paper Datatable\n\nA [material design implementation
of a data table](https://www.google.com/design/spec/components/data-tables.html)
.\n\n","behaviors":["Polymer.IronResizableBehavior"]}},"behaviors":{},"path":"li
b\\src\\paper-datatable\\paper-datatable.html"}
#0 _parseError (package:custom_element_apigen/generate_dart_api.dart:202:3)
#1 _parseFile.<_parseFile_async_body> (package:custom_element_apigen/genera
te_dart_api.dart:160:5)
#2 _RootZone.runUnary (dart:async/zone.dart:1149)
#3 _Future._propagateToListeners.handleValueCallback (dart:async/future_imp
l.dart:502)
#4 _Future._propagateToListeners (dart:async/future_impl.dart:585)
#5 _Future._completeWithValue (dart:async/future_impl.dart:376)
#6 Future.wait.<anonymous closure> (dart:async/future.dart:299)
#7 _RootZone.runUnary (dart:async/zone.dart:1149)
#8 _Future._propagateToListeners.handleValueCallback (dart:async/future_imp
l.dart:502)
#9 _Future._propagateToListeners (dart:async/future_impl.dart:585)
#10 _Future._completeWithValue (dart:async/future_impl.dart:376)
#11 _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:
430)
#12 _microtaskLoop (dart:async/schedule_microtask.dart:43)
#13 _microtaskLoopEntry (dart:async/schedule_microtask.dart:52)
#14 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#15 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dar
t:151)
Я делаю что-то неправильно? или это ошибка?
Спасибо!
1 ответ
Это ошибка, пакет не тестировался в Windows, поскольку он в основном использовался командой полимерных дротиков.
В целом это выглядит так, как будто исправление просто требует загрузки .bat
файл, как вы уже сделали, а затем настройте пути, чтобы использовать правильный разделитель каталогов.
См. https://github.com/dart-lang/custom-element-apigen/issues/43.