2013-04-26 49 views
2

我試圖做一個「圖書館」類型的項目中鏢,然後從其他項目上圖書館「依賴」(全部使用YAML文件的路徑依賴功能) 。我知道,如果我託管我的庫或者我使用了GIT,但是我不想這樣做,我可能能夠獲得依賴項的工作,因爲我認爲純粹的基於文件系統的依賴關係應該是「不需要考慮的」 。鏢路徑依賴不工作(在多個項目)

所以,沒有進一步再見,這裏是我的情況。我有一個包含兩個文件基礎上web_ui一個非常簡單的飛鏢庫/項目:

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文件中設置我的道路,我從來沒有看到我的web \ packages目錄我ExampleForm項目下得到從我的檔案更新esrvdartui項目,因此我無法使用基於文件的依賴關係方法在我的庫中使用這些文件,因爲我的ExampleForm項目的構建失敗。

「酒吧安裝」不與上述路徑抱怨,當我使用絕對路徑不抱怨,所以我知道,「酒吧安裝」看我的相關項目。它只是不會爲我複製惡意文件。

有什麼想法?

爲ExampleForm我pubspec.lock文件是:

#通過酒館生成 #見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」, 「源」:「豪STED」, 「描述」: 「csslib」}, 「esrvdartui」:{ 「版本」: 「0.0.0」, 「源」: 「路徑」, 「描述」:{ 「相對」:假, 「路徑」: 「C:/用戶/傑森/鏢/ esrvdartui」}}, 「html5lib」:{ 「版本」: 「0.4.3」, 「源」: 「託管」, 「描述」: 「html5lib」}, 「參數」 msgid :{ 「版本」: 「0.5.0 + 1」, 「源」: 「託管」, 「描述」: 「ARGS」}, 「瀏覽器」:{ 「版本」: 「0.5.0 + 1」,「源「:」 託管」, 「描述」: 「瀏覽器」}, 「元」:{ 「版本」: 「0.5.0 + 1」, 「源」: 「託管」, 「說明」: 「元」}}}

爲esrvdartui我pubspec.lock文件是:

通過酒館

生成見http://pub.dartlang.org/doc/glossary.html#lockfile

{「packages」:{「meta」:「version」:「0.5.0 + 1」,「source」:「hosted」,「description」:「meta」},「browser」:{「version」:「 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」, 「源」: 「託管」, 「描述」 :「unittest」},「logging」:{「version」:「0.5.0 + 1」,「source」:「hosted」,「description」:「logging」}}}

+0

你可以添加你的pubspec.lock作爲你的問題的編輯? – 2013-04-26 22:03:52

+0

我的猜測是你的dart文件在'web'而不是'lib'?在本地路徑中使用pub創建一個到「[your_folder] \ lib」的硬鏈接。 – MarioP 2013-04-27 12:24:42

+0

我有同樣的問題,對解決方案真的很感興趣。 – jz87 2013-05-02 03:41:47

回答

0

我終於明白了工作,但在我的生活中,我無法在任何地方找到它,只需在Dart IDE中創建一個項目,然後在該項目中創建一個名爲「lib」的頂級文件夾(打擊所有其他項目目錄下除了頂層的「packages」文件夾)現在,創建你的主庫的.dart文件,我們稱它爲「mylibrary.dart」,這個文件內容如下:

mylibrary。飛鏢

library mylibrary; 

import 'dart:json'; 

part 'src/libraryfile1.dart'; 

現在,在「lib」下面創建一個子目錄來放置你的庫的源文件。這真的可以命名爲任何東西,但我選擇將其命名爲「src」。請將您的libraryfile1.dart文件存在,它應該是這個樣子:

的src/libraryfile1.dart

part of hix_lib; 
. 
. 
. 

所有import語句應始終放置在頂層主庫文件:在MyLibrary 。鏢。

現在,在您希望使用此基於文件的庫的項目中,必須將您的「mylibrary」添加到項目的pubspec.yaml文件並選擇:「Source:path」。在我的機器上,因爲所有的項目都在同一個目錄中,我的路徑只是指向:../mylibrary

而這就是所有要做的!