TL之後,DR:超出了我的項目目錄,與haxelib dev
安裝,並列入Project.xml
像任何其他圖書館,我的圖書館不被HAXE編譯器看到。在我的項目目錄中,它工作正常。顯然,其他庫不必在我的項目目錄中,以避免編譯器錯誤,所以我在這裏錯過了什麼?「類型未找到」轉類爲haxelib
我試圖通過遵循this page來發布一些代碼作爲haxelib。
我原來的軟件包命名空間爲flixel.addons
。該代碼作爲不同項目的一部分,位於其子目錄source/flixel/addons
下。在我開始之前,這個項目是編譯好的一部分。
我決定最好不要在釋放它時侵入別人的名字空間,所以我在我的類文件的package
行上將命名空間更改爲mynamespace
。我查看另一個haxelib的想法,並看到庫名稱可能與類路徑不同,這可能應該與包名稱空間相同。讓我感動的代碼我的項目,到新目錄中的其他地方:
mylibraryname
\-Readme.md
\-haxelib.json
\-mynamespace
\-myclass.hx
中的說明,我跑haxelib dev
與路徑mylibraryname
。
在我的項目中,我添加了<haxelib name="mylibraryname" />
到Project.xml。在我使用它的地方,我將import
行從flixel.addons.myclass
更改爲mynamespace.myclass
。
現在,試圖編譯我的項目(在FlashDevelop中,使用Haxe 3.2.1)在import
行上給出錯誤Type not found: mynamespace.myclass
。具有諷刺意味的是,FlashDevelop在光標位置myclass
上按Ctrl + Shift + 1自動添加了該行。此外,我可以在import
系列的紅色下劃線部分按F4鍵,並從它的新位置開啓myclass.hx
就好了。
該文件包含:
package mynamespace;
和使用它我的項目文件包括:
import mynamespace.myclass;
同時,haxelib.json文件有:
{
"name": "mylibraryname",
"url" : "...",
"license": "MIT",
"tags": ["haxe"],
"description": "...",
"version": "0.0.1-alpha",
"classPath": "mynamespace/",
"releasenote": "...",
"contributors": ["me"],
"dependencies": {
...
}
}
件事情我想:
即使我認爲它應該在這一點上工作,我試圖創建一個zip文件,並在其上使用
haxelib install
的下一個步驟。不用找了。我也碰巧在我的項目中還有一個目錄
mynamespace
,但我真的不需要任何東西了,所以我刪除了它。不用找了。只是可以肯定有沒有錯字的一些地方,我一屁股的
mylibraryname
目錄的副本(已在...\haxe\lib\mylibraryname\0.0.1-alpha
正確安裝,並提出了.current
文件與它0.0.1-alpha
,BTW)回到我的項目。它編譯得很好。即使它不是在文檔中提到,我看到了另一個庫包含文件
haxelib.xml
一起haxelib.json
,含this。有或沒有這個文件存在,沒有改變。 (不連代碼完成,工作正常上市班裏的獨特性和遺傳變量,但在輸出窗格中生成完全相同的Type not found
的錯誤,因爲我編譯期間得到。)haxelib selfupdate
。已經是最新的。不用找了。Windows重新啓動!爲什麼不?不用找了。
如何讓我的項目編譯?爲什麼Haxe在FlashDevelop和haxelib做的時候看不到它,當我的lib的目錄結構和haxelib.json
是在工作第三方haxelibs和文檔之後建模的?
還是我誤解了一些東西,你必須在項目的上下文中測試haxelibs,直到它們被真正釋放爲止?如果是這種情況,我不確定在haxelib dev
和haxelib install mylib.zip
步驟中究竟應該做什麼。
您能否爲我們提供庫類中的包行,項目代碼中的導入行以及'haxelib.json'的內容? –
@jonasmalacofilho我不相信我的軟件包或導入行錯誤,如果它編譯好我的項目目錄層次結構的一部分,但我張貼他們按要求。我還發布了haxelib.json的+1。 – Kev