Вопрос по minify, google-closure-compiler, javascript, google-closure – Как использовать Google Closure для компиляции JavaScript

13

Google только что выпустилзакрытие, который является компилятором для минимизации JavaScript.

На сайте продукта написано "Компилятор Closure также был интегрирован с Page Speed ".

Как мне использовать Page Speed для компиляции моих веб-страниц JavaScript с помощью Closure?

(Или есть веб-сайт, который я могу просто вставить в свой JavaScript, чтобы закрыть его?

Google великолепен, потому что они обычно предоставляют пошаговые руководства и учебные пособия "разработчик» программного обеспечения. Закрытие не является исключением. НачнитеВот и перейдите по ссылкам на инструмент, о котором вы хотите узнать. Тогда просто читайте и следуйте. У них есть тонна информации о каждом инструменте. Наслаждайтесь! JasCav
эй @ Тед, ябуду расширять вопрос, чтобы включить "как скомпилировать javascript в командной строке также. Evgeny

Ваш Ответ

6   ответов
0

Используйте компилятор закрытия с PHP (размещенный через CURL или локальный через инструмент командной строки)

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

0

Похоже, что Closure Compiler интегрирован с Page Speedтолько для Windows.

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

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»

0

Page Speed 1.4 Beta интегрирует Closure Compiler для автоматической минимизации файлов JavaScript. Однако вам нужно будет отдельно загрузить и установить бета-версию Page Speed и Closure Compiler ».

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

У меня нетя еще не установил эту версию, но яЯ совершенно уверен, что Page Speed представит вам скомпилированный код в своих рекомендациях по оптимизации.

0

Если вам нужно скомпилировать несколько js-файлов или вы хотите упростить процесс компиляции, вы можете использовать kjscompiler:https://github.com/knyga/kjscompiler (на основе компилятора Google закрытия)

Похожие вопросы