TL;DR :在我的项目目录之外,与任何其他库一样安装haxelib dev
并包含在其中, Haxe 编译器看不到我的库。Project.xml
在我的项目目录中,它工作正常。显然,其他库不必在我的项目目录中以避免编译器错误,那么我在这里缺少什么?
我正在尝试通过关注此页面将一些代码作为 haxelib 发布。
我最初的包命名空间为flixel.addons
. 该代码作为不同项目的一部分,位于其source/flixel/addons
子目录下。在我开始之前,它是编译好的项目的一部分。
我决定在释放它时最好不要侵入别人的命名空间,所以我将命名空间更改为mynamespace
在package
我的类文件的行。我查看了另一个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)在使用它的行Type not found: mynamespace.myclass
上给出了错误import
。具有讽刺意味的是,FlashDevelop 会自动添加该行,同时按下 Ctrl+Shift+1 并将光标放在myclass
使用它的位置。此外,我可以在该行的红色下划线部分按 F4,它会从新位置import
打开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
,顺便说一句)放回我的项目中。它编译得很好。尽管文档中没有提到它,但我看到另一个库在
haxelib.xml
旁边包含一个文件haxelib.json
,其中包含这个. 无论是否存在此文件,都没有变化。(甚至没有代码完成,它可以很好地列出我的类的唯一和继承变量,但会在“输出”窗格中生成与编译期间完全相同的Type not found
错误。)haxelib selfupdate
. 已经是最新的了。没变。视窗重启!为什么不?没变。
我怎样才能让我的项目编译?为什么当 FlashDevelop 和 haxelib 出现时,Haxe 看不到它,以及当我的 lib 的目录结构和haxelib.json
根据工作的第三方 haxelibs 和文档建模时?
还是我误解了什么,您必须在项目的上下文中测试 haxelib,直到它们真正发布?如果是这种情况,我不确定使用haxelib dev
andhaxelib install mylib.zip
步骤到底应该做什么。