2009-11-07 76 views
13

Google刚发布Closure,这是一个缩小JavaScript的编译器。如何使用Google的Closure编译JavaScript

在产品网站上,它说“Closure编译器也与Page Speed集成”。

如何使用Page Speed来编译我的网页带闭包的JavaScript?

(或者是有一个网站,我可以在我的JavaScript简单地粘贴有封缩小呢?

+0

哎@Ted,我会扩大的问题,包括“如何编译JavaScript的“也在命令行上。 – Evgeny 2010-03-02 21:54:33

+0

谷歌很棒,因为它们通常会提供他们的“开发者”软件的演练和教程。封闭也不例外。从[开始](http://code.google.com/closure/)开始,然后按照您想了解的工具链接进行操作。然后,请阅读并遵循。他们有很多关于每种工具的信息。请享用! – JasCav 2009-11-07 05:35:28

回答

0

“Page Speed的1.4测试版集成了关闭编译器来缩小JavaScript自动文件。但是,您将需要下载和安装页面速度测试版,并使用Closure Compiler分开。”

http://code.google.com/speed/page-speed/download.html

我还没有安装这个版本,但我敢肯定的是网页速度将为您呈现在其优化的编译代码建议。

10

单个文件很简单

java -jar $path_to_jar/compiler.jar --js input_file.js \ 
      --js_output_file output_file.js 

对于多文件项目,你可以结合使用calcdeps.py与编译器compiler.jar

#!/bin/sh$ 
$CALCDEPS_PATH=/path/to_calcdeps #directory containing calcdeps.py 
$JAR_PATH=/path/to_jar   #directory containing compiler.jar 
$CLOSURE_PATH=/path/to_closure #contains directory "closure" 
$CALCDEPS_PATH/calcdeps.py --path $CLOSURE_PATH \ 
          --path . \ 
          --compiler_jar $JAR_PATH/compiler.jar \ 
          --input main_project_file.js \ 
          --output_mode compiled \ 
          > compiled_project_file.js 

这样提供有关错误类型等有意义的信息类型错误可以在编译时捕获,因为compiler.jar使用certain JSDoc comments作为类型信息。

额外的编译器标志可以传递给calcdeps.py随着-f--compiler_flags选项

如果你想使用先进的优化设置

--compiler_flags "--compilation_level=ADVANCED_OPTIMIZATIONS"

注意双引号和等号 - 不得不在bash中使用该格式

1

Closure编译器现在可用作JavaScript应用程序。不再需要Java依赖项

有几种方法可以与它集成。我已经做了作为汇总的一部分

例如:

import rollup from 'rollup'; 
import closure from 'rollup-plugin-closure-compiler-js'; 

export default { 
    entry: 'index.js', 
    dest: 'dist/build.js', 
    format: 'iife', 
    plugins: [ 
    closure({ 
     languageIn: 'ECMASCRIPT6', 
     languageOut: 'ECMASCRIPT5', 
     compilationLevel: 'ADVANCED', 
     warningLevel: 'VERBOSE', 
     externs: [{src:` 
         var jQuery; 
         jQuery.fadeIn = function() {}; 

         var ko; 
         ko.applyBindings = function(vm) {}; 
         ko.computed = function(a,b) {}; 
         ko.observable = function(a) {}; 
       `}], 
    }) 
    ] 
} 

此处了解详情:

http://www.syntaxsuccess.com/viewarticle/using-the-closure-compiler---advanced_optimizations

相关问题