标签: google-closure-compiler

如何使用Google Closure编译器删除未使用的JavaScript代码?

如何使用Google Closure编译器删除未使用的代码?

我正在使用JQuery Slider控件但是我没有在JQuery中使用任何其他东西.所以我读到高级模式下的Google Closure编译器可以删除未使用的代码,但我不知道如何.

我有frontpage.html链接到我的网站上托管的html页面的外部JQuery,JQuery UI和JQuery Slider控件.

在我的frontpage.html上,我还在HTML中嵌入了JavaScript,启动了JQuery Slider控件.

我如何使用我使用在线Closure Compiler来评估我的frontpage.html,JQuery,JQuery UI和JQuery Slider来删除我不使用的所有未使用的JQuery代码?

javascript jquery jquery-ui google-closure google-closure-compiler

8
推荐指数
2
解决办法
3903
查看次数

警告 - 危险使用全局此对象

在Google Closure Compiler中,我收到了警告

警告 - 危险使用全局此对象

这是一个例子.错误行和偏移量指的是单词的开头this

function aToggle() {
  if(shown)
    toggle.show()
  else
    toggle.hide()
  $(this).text(shown ? 'Click to hide' : 'Click to show')
  shown = !shown
}
link.onclick = aToggle
Run Code Online (Sandbox Code Playgroud)

我只是将它改为匿名方法,但我aToggle在文件的其他地方重新使用,所以需要命名.

我可以标记aToggle/**@constructor*/- 但它不是构造函数.是否有另一个注释我可以用来消除这个警告,或者我是否在将其标记为构造函数或者出现一堆无用的警告之间?

javascript google-closure google-closure-compiler

8
推荐指数
1
解决办法
4333
查看次数

将闭包编译器的类型安全性与AMD(requirejs)一起使用的最坚固的方法是什么?

虽然JavaScript及其许多库(jQuery,RequireJS)允许创建许多优秀的网站,但我在考虑构建更大的网站时发现它缺乏类型安全性.

谷歌有一个很棒的闭包编译器,它允许你用JSDoc 注释你的JavaScript并进行类型检查.在尝试了它的丰富类型系统之后,我希望这会大大提高更长寿的JavaScript项目的可维护性.

唯一的问题是它与RequireJS等AMD库不能很好地协同工作.有一个实验性的--transform_amd_modules标志,用于连接JavaScript文件并通过消除它来处理范围.然而,这似乎是一种反模式,消除了RequireJS的大部分好处(但保留了模块化文件结构).还有一个问题是未来将获得多少支持

最终目标是类型安全,而不是昂贵的RequireJS的好处,这将是我最好的赌注?

PS:虽然我使用RequireJS作为AMD库的首选,但我不会反对使用不同AMD库的解决方案.

javascript type-safety google-closure-compiler requirejs

8
推荐指数
1
解决办法
3217
查看次数

extern chrome extensions API的最佳方法,与Closure编译器高级优化一起使用?

有没有一种简单的方法可以在我的Chrome扩展程序代码中使用高级优化?

它使用chrome API,而Advanced Optimization不会重新识别其关键字.是否有文件或其他东西可以驱逐所有chrome API?

google-closure-compiler google-chrome-extension

8
推荐指数
1
解决办法
955
查看次数

从JavaScript中切换案例中删除死代码

是否有任何压缩机负责移除在应用程序中无法调用的开关盒?

function execute_case(id) {
    switch(id) {
    case 0:
       console.log("0");
       break;
    case 1:
       console.log("1");
       break;
    case 2:
       console.log("2");
       break;
    case 3:
       console.log("3");
       break;
    default:
       console.log("default");
       break;
    }
}

execute_case(1);
Run Code Online (Sandbox Code Playgroud)

如果以上就是我所拥有的,那么理论上情况0,2,3就是死代码并且永远不会被执行.在缩小代码时,是否有任何压缩器具有删除此代码的智能?

我正在看一段代码,它在一个switch语句中有超过200,000个案例,因此问题.

谢谢,-Vikrant

javascript performance yui-compressor google-closure-compiler

8
推荐指数
1
解决办法
369
查看次数

使用Google Closure的@typedef标签

谷歌的Closure编译器有一个"@typedef"标签,但你可以在你的代码中使用它们吗?(我知道它会起作用,但它不受欢迎吗?)

所以这是我的类型

/**
 * The plan object's typedef
 * @typedef {Object}
 */
Types.Plan = {
    "style": "bordersmall",
    "width": "50%",
    "height": "40%",
    "x": "20%",
    "y": "10%",
    "clickable": true,
    "moveable": true
};

然后我可以在我的JSDoc注释中使用该类型.

这允许我的IDE在传递的参数上给我自动完成功能

因此声明的对象不会在代码中的任何位置使用.

/**
 * The Instructions class
 * @param   {Types.Plan}    plan        Plan for position and dimension
 * @param   {Manager}       manager     The manager
 * @param   {Instructions}  parent      This widget's parent's instructions
 * @return  {Instructions}              Returns the new instructions object
 */
Instructions = function(plan, manager, parent){
    plan.
}

这样可以吗?或者有更好的解决方案吗?

javascript google-closure google-closure-compiler jsdoc

7
推荐指数
2
解决办法
6117
查看次数

Google Closure Linter无法在Sublime Text 2 for Windows中使用

有没有人得到Google Closure Linter(gjslint)与Sublime Text 2 for Windows一起使用?

当我运行它时,我得到以下内容(通过工具菜单或CTRL + SHIFT + J):

文件名,目录名或卷标语法不正确.

closure linter:忽略0错误.

我的步骤如下:

开箱即用,没有任何功能.但是,如果我在默认设置中对路径进行硬编码,我可以使用fixjsstyle插件:

{
    // Path to the gjslint.
    "gjslint_path": "/python27/scripts/gjslint",

    // Path to the fixjsstyle.
    "fixjsstyle_path": "/python27/scripts/fixjsstyle"
}
Run Code Online (Sandbox Code Playgroud)

可以确认它们都存在:

C:\>dir c:\python27\scripts
 Volume in drive C is OSDisk
 Volume Serial Number is 36E3-7433

 Directory of c:\python27\scripts

...
06/29/2012  09:48 AM               304 fixjsstyle-script.py
06/29/2012  09:48 AM             7,168 fixjsstyle.exe
06/29/2012  09:48 AM …
Run Code Online (Sandbox Code Playgroud)

javascript python google-closure-compiler sublimetext2

7
推荐指数
1
解决办法
2316
查看次数

创建闭包编译器extern

我正在使用jQuery插件和Google Closure Compiler.问题是,当我将该插件的URL添加到编译中时,插件中存在错误,编译失败.所以我想为该插件创建一个extern.基本上,我只使用整个库中的1个对象和2个方法; 这样的事情:

var TheObject = $.plugin({...});

var SomeVar = TheObject.someName.otherName(SomeString, {

      prop1: [...],

      onError: function () {...}

});

TheObject.SomeMethod();
Run Code Online (Sandbox Code Playgroud)

我查看了Google网站上的文档,但它是从一个令人困惑的"它是什么"的角度编写的,我需要一个简单的"操作方法"视角来说明如何做到这一点.我需要做些什么才能为我所拥有的东西创建一个外部?

谢谢.

javascript google-closure-compiler

7
推荐指数
2
解决办法
3101
查看次数

缩小Node只读的源代码有什么好处?

在NodeJS应用程序中,使用缩小的源代码服务器端有什么好处吗?

我能想到的唯一好处是,较小的JS文件可能会从磁盘上稍微加载一下.但这似乎可以忽略不计,因为它只会影响启动时间.

那么,在将它部署到我们的生产服务器之前,是否有任何理由通过uglify或闭合编译器处理我们的源代码?

javascript minify google-closure-compiler node.js uglifyjs

7
推荐指数
1
解决办法
1218
查看次数

Google Closure开源项目的未来

我喜欢使用Closure库以及使用Closure Compiler和库背后的想法.我已经在几个项目中使用过它,例如Post This For Me.一个重新发布的项目.

我正在考虑在一个庞大的项目中使用Closure我已经开始在那里与许多开发人员合作,而这些开发人员并没有像我一样快.

我不喜欢使用Closure的一件事是在网络上缺乏良好的文档,帮助和示例.

我的问题是,开源Closure项目的未来是什么?谷歌放弃了吗?我知道它在Google内部使用了很多,但我很少看到它在网络上的其他地方使用过.我应该引导我的团队使用它还是我可能犯了一个大错?

在此先感谢您的帮助和建议.希望也许一些Google员工可能会看到这一点.

google-closure google-closure-library google-closure-compiler

7
推荐指数
1
解决办法
347
查看次数