草庐IT

javascript - 我应该多次运行 Google Closure Compiler 以进一步优化我的代码吗?

我尝试将以下JavaScript代码放入ClosureCompilerwebinterface在高级优化模式下:functionf(some_object){if(some_object.foo==1){console.log(some_object.bar);}else{alert(some_object.bar);}}varmy_object={foo:1,bar:2};f(my_object);它生成了以下编译代码:vara={b:1,a:2};1==a.b?console.log(a.a):alert(a.a);但是当我把编译后的代码backintotheClosureComp

javascript - 有什么方法可以逆转 Closure Compiler(或类似的)对代码的影响吗?

我最近接手了一个项目,因为我的客户以前的网络开发人员不见了。我唯一需要处理的文件是存储在本地服务器上的文件。我遇到的唯一问题是所有JS都是通过ClosureCompiler(或类似的东西)运行的,这使得javascript读起来真的很烦人(至少对于更大的函数)。有什么东西可以帮助我在JS中重新插入vars,这样我就有了更清晰的东西可以看吗?我一直在手工做这件事,而且越来越乏味。这是我正在处理的示例:varn={},e=a.extend(n,x),y="pageLoaded",u="pageLoading",c="modLoaded",w="xhrComplete",l=true,v=f

javascript - 我们可以使用 Google Closure Compiler 从完整的 .js 文件创建 externs 吗?

我想知道是否需要手动编写Google闭包编译器的外部文件。我还没有看到任何关于从我的.js文件生成这些文件的可能性。手动创建所有外部变量是一项相当大的工作,而且它也很容易出错(即错误的参数定义,因为它随时间变化......)所以我想知道是否有用于该目的的Linux工具(命令行)。如果没有,是否有办法将.js与外部文件进行比较,这样我至少可以确保它们同步。? 最佳答案 http://www.dotnetwise.com/Code/Externs/旨在做到这一点,但我自己没有使用过它,所以我不确定它的效果如何。我们有一个关于dothis

javascript - 为什么 Closure 在使用 function.apply 时不对参数进行类型检查?

见下文/***@param{string}a*@param{string}b*/varf=function(a,b){//...}/***@param{string}a*@param{boolean}c*/varh=function(a,c){f.apply(this,arguments);//nocompileerrorf.apply(this,[a,c]);//nocompileerrorf.call(this,a,c);//compileerror:doesnotmatchformalparameter}为什么Closure只在使用call而不是apply时报错?有没有一种方法可

javascript - PIXI.js 的 Closure Compiler EXTERNS - 自定义对象参数注释

我正在为pixijs库准备externs文件以与闭包编译器一起使用。到目前为止,我遇到的唯一问题是自定义对象参数。这是一个简短的例子:pixi.js来源:/***Setthestyleofthetext**@param[style]{object}Thestyleparameters*@param[style.font='bold20ptArial']{string}Thestyleandsizeofthefont*@param[style.fill='black']{string|number}Acanvasfillstylethatwillbeusedonthetexteg'red

javascript - 是否可以让 Google Closure 编译器*不*内联某些函数?

Closure编译器正在内联一个函数,但如果该函数未被内联,代码大小会更小(我只关心代码大小——这是针对JS1k的)。我可以告诉编译器我不想内联该函数吗?编辑:为了更好地解释,这是我的函数:functionlineTo(x,y){a.lineTo(x,y);}Canvas上下文中的a。因为代码中有很多a.lineTo,所以用这个函数是值得的。像这样,我的代码是1019字节(所有的lineTo都被a.lineTo替换了)。如果我将函数更改为:functionlineTo(x,y){a.lineTo(x,y);console.log();}新行以某种方式强制编译器不内联此函数,这给了我99

javascript - 将参数传递给 javascript 函数

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Javascriptclosureinsideloops-simplepracticalexamplejavascriptvariablescope/closureinloopaftertimeout能否请您逐步解释为什么结果不同?片段A(提醒10)for(vari=0;i片段B(提醒3)for(vari=0;i

javascript - 使用 Closure-Compiler 类型检查数组内容

在GoogleClosure中,如果初始化一个特定的Array的@type{Array.},我能确定GoogleClosure会确认数组内容吗?这是一个小测试用例。在我看来,{Array.}正在偷偷通过{Array.}检查,尽管{string}被相同的检查正确阻止。我对GC有点陌生,这是我的错误吗?我已将其粘贴到GoogleClosureService,并且我只显示了两个预期错误之一(2013年9月12日)。我已经在我的本地jar文件(最新的v20130823)上用ADVANCED_OPTIMIZATIONS和warning_levelVERBOSE对这个进行了双重测试。它看起来仍然像

javascript - Closure Compiler 缩小代码中 (0, obj.method)(param1, param2) 的用途

这种方法有什么用?例如,来自GoogleOAuthAPI:(0,_.Q)("gapi.auth.authorize",_.Ek.Ff);(0,_.Q)("gapi.auth.checkSessionState",_.Ek.MH);(0,_.Q)("gapi.auth.getAuthHeaderValueForFirstParty",_.Ek.Qe);(0,_.Q)("gapi.auth.getToken",_.Ek.$f);(0,_.Q)("gapi.auth.getVersionInfo",_.Ek.Wk);(0,_.Q)("gapi.auth.init",_.Ek.gb);(0,_

javascript - Closure Compiler 可以构建 CommonJS 模块吗

我想使用GoogleClosureCompiler构建一组CommonJS模块。这可以开箱即用吗?或者,是否可以对CommonJS模块进行一些简单的转换,以允许ClosureCompiler使用它们? 最佳答案 已向ClosureCompiler添加支持,使其更易于使用CommonJS和AMD/require.js使用以下编译器标志的模块:--transform_amd_modules--process_common_js_modules--common_js_entry_module--common_js_module_path_