2009-11-07 83 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

相關問題