如何使用Google Closure优化CasperJS项目?

时间:2012-06-16 17:30:48

标签: google-closure-compiler casperjs

我正在尝试优化CasperJS测试run.js代码(https://github.com/n1k0/casperjs/blob/master/tests/run.js),以便我能理解如何使用它进一步优化我写的测试。这是CasperJS项目的示例run.js,我试图使用ADVANCED_OPTIMIZATIONS标志来优化编译器。 (https://github.com/n1k0/casperjs/blob/master/tests/run.js) 但优化的代码如下:

phantom.d || (console.log("This script must be invoked using the casperjs executable"), phantom.c(1)); var a = require("fs"), c = require("utils").h, d = require("casper").create({g:!1}); d.options.n = d.a.get("direct") || !1; d.options.i = d.a.get("log-level") || "error"; d.m("open.location", function(b) { return!/^http/.test(b) ? c("file://%s/%s", phantom.e, b) : b }); var e = []; d.a.b.length ? e = d.a.b.filter(function(b) { return a.isFile(b) || a.isDirectory(b) }) : (d.f("No test path passed, exiting.", "RED_BAR", 80), d.c(1)); d.test.j("tests.complete", function() { this.k(true, void 0, d.a.get("xunit") || void 0) }); d.test.l.apply(d.test, e);

显然,这是由编译器告知的失败(例如:JSC_INEXISTENT_PROPERTY:属性casperLoaded从未在第2行字符5的幻像上定义 if(!phantom.casperLoaded))

请指导我如何使用Closure Compiler来优化项目中的所有JS文件及其依赖项,从而避免这些错误并继续进行。

我查看了Closure的文档,但是我无法弄清楚这种情况下所需的方法。

仅供参考:我使用的是Closure compiler.jar

1 个答案:

答案 0 :(得分:0)

Closure Compiler增加了支持,使用以下编译器标志更容易使用Common JSAMD/require.js模块:

  • --transform_amd_modules
  • --process_common_js_modules
  • --common_js_entry_module
  • --common_js_module_path_prefix

请参阅Experimental support for Common JS and AMD/require.js modules in Closure Compiler