找不到引用的源:包

时间:2012-10-31 15:15:32

标签: dart dart-pub

我有这个pubspec.yaml

    name: Dart Pages
    description: The Dart platform.
    dependencies:
      web_components: any
      mongo_dart: any

然后我运行工具> Pub Install,操作成功完成。

运行应用程序时出现以下错误:

    dart --enable-checked-mode web\page.dart
    Unable to open file: C:/Users/Samer/Documents/GitHub/dart/web/packages/mongo_dart/mongo_dart.dart'file:///C:/Users/Samer/Documents/GitHub/dart/web/page.dart': Error: line 1 pos 1: library handler failed
    #import("package:mongo_dart/mongo_dart.dart");

我正在使用Windows 7 64位&最新Dart编辑器版本0.2.1_r14167

问题似乎不仅仅是mongo_dart,而是所有其他库,编辑器正在寻找/ dart / web / packages中的包的错误路径,而我在/dart/packages文件夹中看到了

感谢您的帮助和时间。

5 个答案:

答案 0 :(得分:1)

自创建“web”目录以来,您是否运行pub install?如果没有,试试吧。您需要在包含Dart入口点的目录中有一个“packages”目录,以便“package:”导入能够正确解析。

Pub会为你创建这些目录,但它需要知道这样做。如果您向程序包添加新目录,则需要再次运行pub install,以便向其添加“packages”目录。

答案 1 :(得分:1)

我遇到类似TeamCity的问题。在我的开发机器上,我可以反复执行pub getpub build并且它工作得很好,但这只在我第一次使用TeamCity构建解决方案时才有效。

经过大量的讨论之后,我终于发现,主要是通过反复试验,问题是由TeamCity在构建解决方案之前清理文件夹引起的。

我找不到pub如何工作的任何合理文档,我不知道为什么这只会在第一次有效,但我的试验和错误发现每次执行pub cache repairpub get之前构建,最后pub build可重复工作,我的TeamCity项目现在每次都成功构建。

答案 2 :(得分:0)

我在这里有类似的东西,使用js-interop包。我将':'改为'/'并且有效。

原始声明:

    import("package:mongo_dart/mongo_dart.dart");

修改声明:

    #import("package/mongo_dart/mongo_dart.dart");

你也可以尝试这个(它对我有用):

    import 'packages/mongo_dart/mongo_dart.dart';

答案 3 :(得分:0)

您可能需要在导入mongo_dart.dart的位置添加其他库,然后在main中导入库。这是我知道的一个奇怪的解决方案,但当我试图在Dart中运行Google Maps时,它对我有用。

更多信息:https://groups.google.com/a/dartlang.org/d/msg/misc/ORXJmmmH3fA/WIKyBik1e7sJ

答案 4 :(得分:0)

我在尝试导入unittest时遇到了类似的问题。我使用dart编辑器插件在Windows 7 64位中运行Eclipse 4.2。

删除c:\ USERS \< 用户> \ AppData \ Roaming \下的'pub'文件夹。

此darlang google论坛上的Samer Ali获得此奖励,请参阅here