dart路径依赖项不起作用(跨多个项目)

时间:2013-04-26 18:06:25

标签: file dependencies dart

我试图在dart中创建一个“库”类型的项目,然后从另一个项目“依赖”该库(所有这些都使用yaml文件的路径依赖功能)。我知道如果我托管我的库或者我使用GIT,我可能能够使依赖项工作正常工作,但我也不想这样做,因为我觉得基于纯文件系统的依赖应该是“没脑子”

所以,没有进一步的说明,这是我的情况。我有一个非常简单的基于web_ui的dart库/项目,它包含两个文件:

esrvdartui.dart
---------------
library esrvdartui;

import 'dart:html';
import 'package:web_ui/web_ui.dart';

part 'esrvradiobutton.dart';



esrvradiobutton.dart
--------------------
part of esrvdartui;

class ESrvRadioButton extends RadioButtonInputElement
{
  ESrvRadioButton ()
  {
  }
}

然后我创建了另一个非常小/简单的基于web_ui的项目,名为“ExampleForm”,想要使用上面的esrvdartui项目。这两个项目都存在于同一目录结构中。我的ExampleForm项目包含以下yaml文件:

pubspec.yaml
------------
name: ExampleForm
description: A sample WebUI application
dependencies:
  js: any
  browser: any
  web_ui: any
  esrvdartui:
    path: ../esrvdartui

无论我在上面的yaml文件中设置了什么路径,我都没有看到我的ExampleForm项目下面的web \ packages目录更新了esrvdartui项目中的文件,因此,我无法使用我的文件使用基于文件的依赖项方法的库,因为我的ExampleForm项目的构建失败。

“Pub install”不会抱怨上面的路径,当我使用绝对路径时它不会抱怨,所以我知道“Pub install”看到我的依赖项目。它只是不会为我复制darned文件。

有什么想法吗?

我的ExampleForm的pubspec.lock文件是:

#由pub生成  #见http://pub.dartlang.org/doc/glossary.html#lockfile  { “包”:{ “日志记录”:{ “版本”: “0.5.0 + 1”, “源”: “托管”, “描述”: “日志记录”}, “source_maps”:{ “版本”:” 0.5.0 + 1" , “源”: “托管”, “描述”: “source_maps”}, “单元测试”:{ “版本”: “0.5.0 + 1”, “源”: “托管”,”描述 “:” 单元测试 “},” 悲情 “:{” 版本 “:” 0.5.0 + 1" , “源”: “托管”, “描述”: “悲情”}, “analyzer_experimental”:{ “版本” : “0.4.7 + 1”, “源”: “托管”, “描述”: “analyzer_experimental”}, “web_ui”:{ “版本”: “0.4.6 + 1”, “源”: “托管” , “说明”: “web_ui”}, “JS”:{ “版本”: “0.0.21”, “源”: “托管”, “描述”: “JS”}, “csslib”:{ “版本” : “0.4.3”, “源”: “托管”, “描述”: “csslib”}, “esrvdartui”:{ “版本”: “0.0.0”, “源”: “路径”, “描述” :{ “相对”:假, “路径”: “C:/用户/杰森/镖/ esrvdartui”}}, “html5lib”:{ “版本”: “0.4.3”, “源”: “托管”, “描述”: “html5lib”}, “ARGS”:{ “版本”: “0.5.0 + 1”, “源”: “托管”, “描述”: “ARGS”}, “浏览器”:{“版本“:” 0.5.0 + 1" , “源”: “托管”, “描述”: “浏览器”}, “元”:{ “版本”: “0.5.0 + 1”, “源”:”托管”, “描述”: “元”}}}

我对esrvdartui的pubspec.lock文件是:

由pub

生成

请参阅http://pub.dartlang.org/doc/glossary.html#lockfile

{ “包”:{ “元”: “版本”: “0.5.0 + 1”, “源”: “托管”, “说明”: “元”}, “浏览器”:{ “版本” : “0.5.0 + 1”, “源”: “托管”, “描述”: “浏览器”}, “ARGS”:{ “版本”: “0.5.0 + 1”, “源”: “托管” , “说明”: “ARGS”}, “html5lib”:{ “版本”: “0.4.3”, “源”: “托管”, “描述”: “html5lib”}, “analyzer_experimental”:{ “版本” : “0.5.0 + 1”, “源”: “托管”, “描述”: “analyzer_experimental”}, “csslib”:{ “版本”: “0.4.3”, “源”: “托管”,”描述 “:” csslib “},” web_ui “:{” 版本 “:” 0.4.6 + 1" , “源”: “托管”, “描述”: “web_ui”}, “悲情”:{ “版本” : “0.5.0 + 1”, “源”: “托管”, “描述”: “悲情”}, “JS”:{ “版本”: “0.0.22”, “源”: “托管”,”描述 “:” JS “},” source_maps “:{” 版本 “:” 0.5.0 + 1" , “源”: “托管”, “描述”: “source_maps”}, “单元测试”:{ “版本” : “0.5.0 + 1”, “源”: “托管”, “描述”: “单元测试”}, “日志记录”:{ “版本”: “0.5.0 + 1”, “源”: “托管” , “说明”: “日志记录”}}}

1 个答案:

答案 0 :(得分:0)

我终于让这个工作,但对于我的生活,我无法在任何地方找到这个记录。您所要做的就是在Dart IDE中创建一个项目。然后,在该项目中创建一个名为“lib”的顶级文件夹(除顶级“packages”文件夹以外的所有其他目录)。现在,创建主库的.dart文件。我们称之为“mylibrary.dart”。此文件的内容如下所示:

mylibrary.dart

 library mylibrary;

 import 'dart:json';

 part 'src/libraryfile1.dart';

现在,在“lib”下创建一个子目录,将库的源文件放入其中。这可以命名为任何东西,但我选择将其命名为“src”。将libraryfile1.dart文件放在那里,它应该如下所示:

的src / libraryfile1.dart

 part of hix_lib;
 .
 .
 .

所有import语句应始终放在顶级主库文件中:mylibrary.dart。

现在,在您希望使用此基于文件的库的项目中,必须将“mylibrary”添加到项目的pubspec.yaml文件中,然后选择:“Source:path”。在我的机器上,因为所有项目都在同一目录中,我的路径只指向:../ mylibrary

这就是要做的事!!!!!

相关问题