4

我有这个 pubspec.yaml

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

然后我运行 Tools > 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 中看到了一个。

感谢您的帮助和时间。

4

5 回答 5

1

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

Pub 将为您创建这些目录,但它需要知道这样做。如果你在你的包中添加一个新目录,你会想要pub install再次运行,所以它会向它添加一个“包”目录。

于 2012-11-01T17:18:15.253 回答
1

我对 TeamCity 也有类似的问题。在我的开发机器上,我可以一遍又一遍地做pub getpub build而且效果很好,但这仅在我第一次使用 TeamCity 构建解决方案时才有效。

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

我找不到任何关于如何pub工作的合理文档,我不知道为什么这只是第一次工作,但我的试验和错误发现pub cache repair在之前的每个构建上执行pub get并最终pub build重复工作,我的 TeamCity 项目现在构建每次都成功。

于 2015-09-17T04:11:07.703 回答
0

我在这里有类似的东西,带有 js-interop 包。我将':'更改为'/'并且它起作用了。

原始声明:

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

修改声明:

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

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

    import 'packages/mongo_dart/mongo_dart.dart';
于 2012-11-01T04:03:52.597 回答
0

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

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

于 2012-11-09T18:06:14.650 回答
0

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

删除 c:\USERS\< user >\AppData\Roaming\ 下的 'pub' 文件夹对我有用。

这要归功于 darlang google 组的 Samer Ali,请参见此处

于 2013-04-01T09:10:54.477 回答