对于JavaScript和Haxe都是新手,这可能有一个简单的答案,但我发现Haxe已经在GoogleCode上为EaselJS提供了端口,但是它们已经过时并且与早期版本相对应。我已经能够修复在编译期间发生的错误,但我仍然担心我没有捕获新的变量和函数名称。
我的问题是:是否有一种简单的方法可以为像EaselJS这样的大型JS库生成externs?
答案 0 :(得分:1)
您可能想看一下Joshua Granick与BuildJS的合作:
http://www.joshuagranick.com/blog/2011/10/14/use-buildjs-to-make-externs-for-haxe-js-automatically/
基本上有一个名为JSDuck的工具,它应该编译JavaScript库的文档,并且可以输出到JSON。他使用了JSON的输出,结合他的“buildjs”库来构建haxe externs。
他将它用于Sencha Touch,我将它用于ExtJS,但两者都是Sencha产品,他们的编码风格与JSDuck一起使用。您可以使用EaselJS,如果它可以工作,那么BuildJS应该生成相当准确的外部。
否则,您可以尝试找到原始EaselJS externs的作者,看看他们是否可以提供更新,或者帮助您创建准确的更新。大多数haxe开发人员可以使用邮件列表或Google群组轻松联系:
答案 1 :(得分:0)
是的,我确实尝试安装了Joshua的工具,但我遇到了JSDuck的问题。
在您链接的示例中,JSDuck应该有一个--json参数,但最新版本似乎已经弃用了。我正在尝试使用配置文件的其他人:
{
"--out": "out",
"--guides": "json",
"--warnings": ["all"],
"--": [
"src/easeljs/"
]}
但这不起作用。无论我尝试什么,导游参数似乎都失败了。
创建json文件给我这个输出:
C:/Users/mycmp/AppData/Local/Temp/ocr374A.tmp/lib/ruby/gems/1.8/gems/jsduck-3.3.0/lib/jsduck/json_duck.rb:36:in `read': Permission denied - K:/Vault/Haxe/myproj/json (Errno::EACCES)
所以我不确定下一步该做什么。让这个适用于很多图书馆真是太棒了。
顺便说一下,我正在使用最新的JSDuck和Windows 7。