这个问题分为两部分。第一个可以总结为Public Image Limited , “这就是你想要的/这就是你得到的。”
我将通过指向教程来保持问题简单:
我“决定”我想将不同的元素视为项目 Assets (可以这么说)。于是我做了一个子文件夹:命名为:组件 ,位于 下方$/web/文件夹,每个:
像这样的东西:
enchilada/
:
web/
index.html
main.dart
style.css
components/
tut_stopwatch.html
tut_stopwatch.dart
当我这样做时: Dart Editor 变得非常困惑。所以首先,我需要指定“我想要什么”,然后描述,“我得到什么”[得到]
我要 :
我得到 :
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
这种行为的原因似乎是我移动了两个文件:
进入【子】组件/文件夹如图(上图)。错误源于文件中聚合物的导入:
代码如下(Dart build 错误作为注释):
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到包裹/每个子文件夹中的文件夹。那将是 symlink在 Linux 或 Mac 上。所以包文件路径应该可以正常工作。
我正在寻找一种策略来获得我想要的东西?在开发中使用 Dart 和 Dart 编辑器为不同的模块或“功能”创建子文件夹?在此先感谢.../w
v02 ... Added code for import polymer error.
v01 ... Original query.
最佳答案
我已经解决了我认为的问题。我希望那些找到摆脱这种死胡同的更好方法的人也会发布更好的替代方案。这个“解决方案”(?)非常不雅,尽管应用程序运行正确(如所写),但 Dart Editor 中仍然存在错误。问题标签..
至少我知道这会产生一个根据我正在阅读的代码工作的应用程序。我认为该行没有语法错误:
import 'package:polymer/polymer.dart';
demo code作品和Dart Editor报告错误。所以是的,我同意,“信息毫无意义”而且它们是错误的;因为代码在一些独特的测试值下运行得很好(见下文)。所以恕我直言, Dart 编辑器 有一个 问题 .如果有人可以确认这一点,我们可以报告错误。
我摆脱这个问题的方法是:
为了测试,我对 bot 的“组件”文件进行了更改,以确保旧版本中的任何内容都不会产生副作用(例如:Define a Custom Element)。
沃利亚! 演示秒表嵌入式组件使用“粉红色”和“3 秒”增量。
我想将这个问题与这个问题交叉链接:
在中型和大型项目中,保持依赖关系和交互的直接性不仅仅是。清洁命令。我认为对构建的一些可见性和更好的控制将是一种改进。
我已经为这个练习压缩了项目文件夹。如果有人想要一份副本,我可以通过电子邮件发送。语法方面,除了修复“:host”错误外,我没有对演示代码进行任何更改。我刚刚将 2 个文件移动到 组件/文件夹。
~ 哈哈
关于module - Dart App 组织子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22398519/