如何使用谷歌&x27;s闭包编译JavaScript

如何使用谷歌&x27;s闭包编译JavaScript,javascript,minify,google-closure,google-closure-compiler,Javascript,Minify,Google Closure,Google Closure Compiler,谷歌刚刚发布了一款精简JavaScript的编译器 在产品网站上,它说“闭包编译器还集成了页面速度” 如何使用页面速度编译带有闭包的网页JavaScript (或者,是否有一个网站,我可以简单地粘贴到我的JavaScript中,让closure缩小它?“Page Speed 1.4 Beta集成了closure编译器来自动缩小JavaScript文件。但是,您需要单独下载并安装Page Speed Beta和closure编译器。” 我还没有安装这个版本,但我相当肯定PageSpeed会在其优

谷歌刚刚发布了一款精简JavaScript的编译器

在产品网站上,它说“闭包编译器还集成了页面速度”

如何使用页面速度编译带有闭包的网页JavaScript

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

“Page Speed 1.4 Beta集成了closure编译器来自动缩小JavaScript文件。但是,您需要单独下载并安装Page Speed Beta和closure编译器。”


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

对于单个文件,它很简单

java -jar $path_to_jar/compiler.jar --js input_file.js \
          --js_output_file output_file.js
对于多文件项目,可以与

通过这种方式,编译器可以提供有关类型错误等有意义的信息。类型错误可以在编译时捕获,因为
compiler.jar
使用类型信息

额外的编译器标志可以与
-f
-compiler\u标志
选项一起传递到
calcdeps.py

如果要使用高级优化集

--编译器\u标志”--编译级别=高级\u优化“


请注意双引号和等号-必须在bash中使用该格式。闭包编译器似乎与页面速度集成在一起。

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


如果您需要编译多个js文件或想要简化编译过程,您可以使用kjscompiler:(基于google closure compiler)

closure compiler现在作为JavaScript应用程序提供。不再需要Java依赖项

有几种方法可以与之集成。我已经将其作为汇总的一部分进行了集成

例:

更多信息请点击此处:


谷歌非常棒,因为他们通常会提供“开发者”软件的演练和教程。结束语也不例外。开始并按照你想了解的工具的链接进行操作。然后,阅读并跟进。他们有大量关于每个工具的信息。享受吧!嘿@Ted,我会将问题扩大到包括在内命令行上的“如何编译javascript”。
#!/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
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) {};
               `}],
    })
  ]
}