custom_element_apigen:将纸张数据导入Dart

时间:2016-01-17 16:35:36

标签: node.js dart dart-polymer

我遵循这些步骤,符合https://github.com/dart-lang/custom-element-apigen

  1. node / npm(v3.5.3)已安装
  2. bower(v1.7.2)已安装
  3. 水解(v1.21.4)安装
  4. .bowerrc使用以下内容创建
  5. { "directory": "lib/src" }

    1. bower install --save paper-datatablehttps://github.com/David-Mulder/paper-datatable)已执行

    2. apigen.yaml使用以下内容创建

    3. files_to_generate: - paper-datatable\paper-datatable.html

      1. custom_element_apigen library add on pubspec.yaml
      2. dependencies: custom_element_apigen: ^0.2.1+1

        1. pub run custom_element_apigen:update apigen.yaml命令已执行。
        2. 此命令中的错误

          第一个错误:在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 个答案:

答案 0 :(得分:2)

这是一个错误,包装在Windows上未经测试,因为它主要是由聚合物飞镖队使用。

一般来说,修复程序只需要像现在一样加载.bat文件,然后调整路径以使用正确的目录分隔符。

请参阅https://github.com/dart-lang/custom-element-apigen/issues/43