TL; DR :与其他任何库一样,在我的项目目录之外,安装了haxelib dev
并包含在Project.xml
中,Haxe编译器看不到我的库。在我的项目目录中,它工作正常。显然,其他库不必位于我的项目目录中,以避免编译器错误,那么我在这里缺少什么呢?
我正在尝试通过遵循this page释放一些代码作为haxelib。
我本来的包 namespace 为flixel.addons
。代码位于source/flixel/addons
子目录下的另一个项目中。在我开始之前,该项目是已编译好的一部分。
我决定最好不要在发布时侵入他人的 namespace ,因此我在类文件的mynamespace
行上将 namespace 更改为package
。我查看了另一个haxelib的构想,发现库名可以与类路径不同,后者可能与包 namespace 相同。因此,我将代码从项目中移出,移至其他位置的新目录中:
mylibraryname
\-Readme.md
\-haxelib.json
\-mynamespace
\-myclass.hx
按照说明,我使用
haxelib dev
的路径运行了mylibraryname
。在我的项目中,我在Project.xml中添加了
<haxelib name="mylibraryname" />
。在使用它的地方,我将import
行从flixel.addons.myclass
更改为mynamespace.myclass
。现在,尝试编译我的项目(在FlashDevelop中,使用Haxe 3.2.1)会在使用它的
Type not found: mynamespace.myclass
行上给出错误import
。具有讽刺意味的是,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": {
...
}
}
我尝试过的事情:
haxelib install
的下一步。没变化。 mynamespace
,但是我真的不再需要它了,所以我删除了它。没变化。 mylibraryname
目录的副本(已正确安装在...\haxe\lib\mylibraryname\0.0.1-alpha
中,并制作了一个带有.current
的0.0.1-alpha
文件,顺便说一句)放回到我的项目中。它编译良好。 haxelib.xml
和haxelib.json
的旁边包含一个Type not found
文件,其中包含this。无论有没有此文件,都不会更改。 (甚至不完成代码,它可以很好地列出我的类的唯一变量和继承的变量,但是在编译时会在“输出” Pane 中生成完全相同的haxelib selfupdate
错误。)haxelib.json
。已经是最新的。没变化。 我如何才能编译我的项目?为什么在FlashDevelop和haxelib出现时Haxe看不到它,以及在使用第三方haxelibs和文档之后对我的lib的目录结构和
haxelib dev
进行建模,为什么?还是我误解了什么,您必须在项目的上下文中测试haxelib,直到它们正式发布为止?如果是这种情况,我不确定
haxelib install mylib.zip
和ojit_code步骤到底应该做什么。 最佳答案
问题应该是classPath
中的haxelib.json
指令。
它的值应该是根/基本软件包中模块的相对搜索路径,而不是软件包的路径。
尝试将其更改为""
或完全省略该指令。