[英]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.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
對類型信息使用某些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.