我的任务是创建用户输入的一致性测试,这项任务非常棘手,我们需要非常高的可靠性。服务器在PHP上运行,客户端在JS上运行,我认为Haxe可能会减少重复工作。
但是,我在删除死码时遇到了麻烦。由于我只是创建辅助函数(utilObject.isMeaningOfLife(42)
),因此我没有主程序来调用每个函数。我尝试将@:keep:
添加到实用程序类中,但无论如何它都被删除了。
我尝试通过-main
开关指定该实用程序类,但我必须添加一个虚拟main()
方法,并且这不会扩展到该单个类之外。
答案 0 :(得分:0)
您可以使用编译器参数强制包含在给定包及其子包中定义的所有文件包含在构建中。
haxe --macro include('my.package')
..等
这是macro.Compiler.include
功能的快捷方式。
正如您所看到的,此功能的签名允许您以递归方式执行此操作并排除包。
static include (pack:String, rec:Bool = true, ?ignore:Array<String>, ?classPaths:Array<String>):Void
对于每个图书馆类,我认为你不必在这种情况下使用@:keep
。
我不确定这是否是您正在寻找的,我希望它有所帮助。 否则,这可能是有用的检查:
-dce std
编译代码。@:keep
并在某处引用类+函数。