我已经下载了最新的闭包编译器jar文件,并按照here的说明查看如何保存对其他地方定义的JS函数的引用。
我的测试脚本 hello.js 如下
function hello(nom)
{
alert(nom + familyName());
}
我的externs在文件 externs.js 中定义,其中包含代码
function familyName(){}
然后我发出命令
java -jar closure.jar --js hello.js --externs externs.js --js_output_file hello-compiled.js --compilation_level ADVANCED_OPTIMIZATIONS
没有ADVANED_OPTIMIZATIONS
一切正常 - 实际上是代码缩小的一个地方。但是,只要我输入高级标志,输出hello_compiled.js
就会以空的1字节文件形式出现。显然,我在某处误解了某些东西。我非常感谢能够让我走上正确轨道的人。
答案 0 :(得分:1)
我怀疑你的hello.js
只定义了hello函数?如果是这样,您需要添加:
hello("foo");
以便实际发生一些事情。您可以使用online closure compiler进行尝试。默认代码是:
function hello(name) {
alert('Hello, ' + name);
}
hello('New user');
如果注释掉最后一行并单击“高级”按钮并编译,则结果成功,但它是零字节。这是因为该代码实际上没有做任何事情,因此编译器正在做正确的事情。