14

谷歌刚刚发布了Closure,这是一个压缩 JavaScript 的编译器。

在产品网站上,它说“Closure Compiler 也已与 Page Speed 集成”。

如何使用 Page Speed 使用 Closure 编译我的网页 JavaScript?

(或者,是否有一个网站,我可以简单地粘贴到我的 JavaScript 中以使闭包缩小它?

4

6 回答 6

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使用某些JSDoc注释来获取类型信息。

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

如果要使用高级优化集

--compiler_flags "--compilation_level=ADVANCED_OPTIMIZATIONS"

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

于 2010-03-02T21:45:13.730 回答
1

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

于 2016-12-03T05:59:49.110 回答
0

“Page Speed 1.4 Beta 集成了 Closure Compiler 以自动缩小 JavaScript 文件。但是,您需要分别下载并安装 Page Speed Beta 和 Closure Compiler。”

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

我还没有安装这个版本,但我相当肯定 Page Speed 会在它的优化建议中为你提供编译后的代码。

于 2009-12-07T17:08:14.507 回答
0

如果需要编译多个js文件或者想简化编译过程,可以使用kjscompiler:https ://github.com/knyga/kjscompiler (基于googleclosure编译器)

于 2014-03-07T10:29:38.020 回答
0

似乎 Closure Compiler仅与 Windows的 Page Speed 集成。

于 2010-04-13T16:02:20.080 回答
0

将闭包编译器与 PHP 一起使用(通过 CURL 托管或通过命令行工具在本地托管)

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

于 2010-09-13T12:44:25.193 回答