簡體   English   中英

如何使用Google的Closure編譯JavaScript

[英]How to use Google's Closure to compile JavaScript

谷歌剛剛發布了Closure ,這是一個縮小JavaScript的編譯器。

在產品網站上,它說“Closure Compiler也與Page Speed集成”。

如何使用Page Speed通過Closure編譯我的網頁JavaScript?

(或者,是否有一個網站,我可以簡單地粘貼在我的JavaScript中以關閉縮小它?

對於單個文件,它很簡單

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

對於多文件項目,您可以將calcdeps.pycompiler.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對類型信息使用某些JSDoc注釋

額外的編譯器標志可以與-f--compiler_flags選項一起傳遞給calcdeps.py

如果要使用高級優化集

--compiler_flags "--compilation_level=ADVANCED_OPTIMIZATIONS"

注意雙引號和等號 - 必須在bash中使用該格式

Closure編譯器現在可用作JavaScript應用程序。 不再需要Java依賴項了

有幾種方法可以與它集成。 我已將其作為Rollup的一部分完成

例如:

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

“Page Speed 1.4 Beta集成了Closure Compiler以自動縮小JavaScript文件。但是,您需要單獨下載並安裝Page Speed Beta和Closure Compiler。”

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

我還沒有安裝這個版本,但我相當確定Page Speed會在優化建議中為您提供編譯代碼。

如果你需要編譯多個js文件或者你想簡化編譯過程,你可以使用kjscompiler: https//github.com/knyga/kjscompiler (基於谷歌閉包編譯器)

Closure Compiler似乎僅針對Windows集成了Page Speed。

使用帶有PHP的閉包編譯器(通過CURL托管或通過命令行工具本地托管)

http://bohuco.net/blog/2009/11/google-closure-compiler-with-php/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM