2014-03-14 83 views
1

这个问题分两部分。首先可以通过Public Image Limited来概括,“这是你想要什么/这就是你。”Dart App组织子模块

我会继续的问题简单通过指向教程:

决定“我会像对待不同的元素作为项目资产(这么说)。所以我做了一个子文件夹:名为:组件,它位于下面的$ /网络/文件夹,每个:

事情是这样的:

enchilada/ 
    : 
    web/ 
    index.html 
    main.dart 
    style.css 
    components/ 
     tut_stopwatch.html 
     tut_stopwatch.dart 

当我这样做:Dart Editor成为非常困惑。所以,首先我需要指定“我想要什么”,然后描述,“我得到什么” [有]

我想

  • 飞镖让我把子模块在从属文件夹中。
  • 在这种情况下,像“tut_stopwatch”,自定义元素与适当的调整路径变化(我做了)。
  • 理想情况下,我更喜欢Dart是否可以在多个层次上集成下属模块。
  • 对于几个嵌套的子组件,您可能会考虑使用'面板'的'容器'之类的自定义UI元素。

我得到

  • 编译错误的转换。这些错误循环:他们“解决”,然后“重新出现”。
  • 我关闭了Dart Editor [1.2.0-release],Dart SDK [1.2.0]并重新启动 - 问题依然存在。
  • 聚合物在 '错误' 中心。:
Target of URI does not exist: 'package:../polymer/polymer.dart' 
Annotation can be only constant variable or constant constructor invocation 
Classes can only extend other classes 
Annotation can be only constant variable or constant constructor invocation 
  • 我觉得没有找到 '聚合物' 是一种症状。飞镖编辑循环:找到< - > not_find

这种现象的原因似乎是我不必移动的两个文件:

  1. tute_stopwatch.html和
  2. tute_stopwatch.dart。 ..

进入[子] 组件/如图文件夹(ABO ve)。

  • 组件/ tute_stopwatch .dart

代码如下(达特构建错误为注释)::

import 'package:polymer/polymer.dart'; 

@CustomTag('tute-stopwatch')     // <-- Target of URI does not exist: 'package:polymer/polymer.dart' 
class TuteStopwatch extends PolymerElement { // <-- Annotation can be only constant variable or constant constructor invocation 
    @observable String counter='00:00';   // <-- Classes can only extend other classes 
               //  Undefined class 'PolymerElement' 
    TuteStopwatch.created() : super.created(); 

    : 
} // TutStopwatch class 

一项所述的误差从该文件中的导入为聚合物茎需要指出的是,Dart编辑器会在每个子文件夹中创建一个Windows Junction link程序包/文件夹。这将是Linux或Mac上的symlink。所以包文件路径应该正常工作。

我正在寻找一种策略来获得我想要的?要在Dart和Dart编辑器中开发不同模块的子文件夹或'功能'?在此先感谢.../W


v02 ... Added code for import polymer error. 
v01 ... Original query. 
+0

支持web子文件夹中的聚合物元素。你不需要太多的策略。也许你可以添加更多的代码(你的导入语句的样子)。 –

+0

嗨。感谢Gunter,这是一个很好的线索。看起来问题涉及Dart Editor如何链接到Windows上的Packages /文件夹。我将按照建议对这个问题进行编辑。 – will

+0

我认为你只是在某处出现语法错误。这些错误消息在这个位置根本没有意义,我敢肯定他们与你的项目结构无关。构造函数和关闭大括号之间的超级冒号是从发布前最小化您的示例我猜? –

回答

0

我已经解决了,我相信这个问题。我希望那些能够找到更好的出路的人们也会发布更好的选择。这种“解决方案”(?)是相当不雅,虽然应用程序运行正常(书面)我仍然有错误,在Dart Editor问题标签..

至少我知道这将产生根据该工程的应用到我正在阅读的代码。我不认为我有行语法错误:

import 'package:polymer/polymer.dart'; 

demo code作品和Dart Editor报告错误。所以是的,我同意,“消息没有意义”,他们是错的;因为代码运行得很好,具有一些独特的测试值(见下文)。所以imho,Dart编辑器有一个问题。如果有人可以证实这一点,我们可以报告一个错误。

的方式,我得到了出这个问题的是:

  1. 关闭飞镖编辑
  2. 取出编译/目录
  3. 重启飞镖编辑
  4. 运行您应用程序。

为了测试,我对bot的'components'文件进行了更改,以确保没有任何旧版本产生副作用(例如:Define a Custom Element)。

  • tut_stopwatch.html ...更改颜色。
  • tut_stopwatch.dart ...更改了定时器增量。

Volia!演示秒表嵌入式组件使用'粉色'颜色和'3秒'增量。

我要交联这个这个问题:

在中等和较大规模的项目,还有更多的保持依赖性和相互作用直不仅仅是一个干净命令。我认为对构建的一些可见性和更好的控制是一个改进。

我有ZIP压缩此练习的项目文件夹。如果有人想要一份副本,我可以发邮件给他。语法方面,除了修正“:host”错误之外,我没有更改演示代码。我只是将2个文件移动到组件/文件夹。

阿罗哈

+0

嗨*帮派* ...更新。这个问题是由** Packages **文件夹决定的问题。继续我已经用[tag:Polymer-dart]自己确定了一个* gotcha *,检查:[Invalid Character:fred](http://stackoverflow.com/questions/22454022),会。 – will

0

太长了评论,所以我将它张贴作为回答:

我看了你的答案但这并没有多大意义。
我在Dart工作了几个月(大部分时间都是聚合物),而且我还没有见过类似的东西。

如果DartEditor显示奇怪的错误消息,您可以执行的操作是在DartEditor的应用程序目录的上下文菜单中执行'Reanalyze Sources'。
如果这不会改变错误,那么错误就出现在你的代码中。

我从来没有见过,构建目录影响到您的Web目录中的错误。

Dart非常宽容,所以当DartEditor显示错误/警告/提示时,应用程序运行并不奇怪,因为在DartEditor中运行的分析器不是。

+0

到目前为止,Reanalyse尚未改变结果。当我杀死飞镖编辑器时......一切看起来很好。您的评论告诉我这个安装有问题。 – will

+0

Dart Editor:1.2.0; Dart SDK:1.2.0; Windows 7 SP1 – will

+0

分析仪可能有问题。你能发布你的项目使用的分析仪版本吗?当您在DartEditor中展开enchilada/packages目录时,它会在软件包的右侧显示版本。你是否执行过'pub upgrade'(在pubspec.yaml的上下文菜单中)? –