TL;DR:在我的项目目录之外,安装了haxelib dev,并像其他库一样包含在Project.xml中,Haxe编译器看不到我的库。在我的项目目录中,它工作得很好。显然,其他库不一定要在我的项目目录中才能避免编译器错误,那么我在这里遗漏了什么呢?
通过遵循此页,我试图以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中使用Haxe3.2.1)会出现错误,Type not found: mynamespace.myclass在使用它的import行上。具有讽刺意味的是,FlashDevelop自动添加了这一行,Ctrl+Shift+1将光标按在使用它的myclass上。此外,我可以在F4行的红下划线上按下myclass.hx,这样就可以从新位置打开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中正确安装,并制作了一个包含0.0.1-alpha的.current文件,BTW)返回到我的项目中。汇编得很好。haxelib.json旁边包含一个文件haxelib.json,包含这。无论是否存在此文件,都不进行任何更改。(甚至连代码完成都没有,它可以很好地列出类的唯一和继承变量,但在输出窗格中生成与编译期间得到的完全相同的Type not found错误。)haxelib selfupdate。已经是最新的了。没有变化。如何让我的项目编译?为什么当FlashDevelop和haxelib完成时,以及当我的lib的目录结构和haxelib.json是在运行第三方haxelib和文档之后建模时,Haxe看不到它呢?
或者我误解了什么,你必须在一个项目的上下文中测试haxelibs,直到它们真正发布为止?如果是这样的话,我不知道haxelib dev和haxelib install mylib.zip步骤到底应该做什么。
发布于 2016-02-05 11:22:01
问题应该是classPath指令在haxelib.json中。
它的值应该是根/基包中模块的相对搜索路径,而不是包的路径。
尝试将其更改为""或完全忽略该指令。
发布于 2016-02-04 22:05:11
库的结构和使用haxelib dev设置它似乎是合理的,我能够用这样创建的自定义库编译一个项目。
我唯一能想到的是,package在myclass.hx中的声明是错误的(可能您在移动文件时忘记了调整它?)。
再次检查该文件中的第一行是否如下所示:
package mynamespace;发布于 2016-02-05 01:59:05
也许你可以试试这样做:
<haxelib name="example-lib" />https://stackoverflow.com/questions/35211755
复制相似问题