我正在尝试优化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
答案 0 :(得分:0)
Closure Compiler增加了支持,使用以下编译器标志更容易使用Common JS和AMD/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