标签: google-closure-compiler

@const在javascript中?

当我在Constant部分注意到带注释的注释时,我正在阅读http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml:

/**
 * The number of seconds in each of the given units.
 * @type {Object.<number>}
 * @const
 */
Run Code Online (Sandbox Code Playgroud)

然后指南继续"这允许编译器强制执行常量".

这是v8的事吗?这记录在哪里?

我的头脑很可能有可能,也许,我可以提供类型信息的v8(或其他)!

javascript google-closure-compiler

1
推荐指数
1
解决办法
1436
查看次数

使用Google Closure Compiler作为库而不是脚本

我是否可以编写自己的Java Main Class来调用compiler.jar中的方法.

我想多次调用编译器,不想编写代码来使用Runtime.exec,也不想在每次调用之前等待Java加载.

google-closure google-closure-compiler

1
推荐指数
1
解决办法
1168
查看次数

使GWT 2.5编译器使用闭包编译器

GWT 2.5 的发行说明说GWT编译器可以选择使用Closure编译器来提供额外的JavaScript优化,是否有人知道如何启用此优化?

gwt google-closure-compiler

1
推荐指数
1
解决办法
787
查看次数

Javascript模块模式和Google Closure编译器

我现在正在Drupal项目上使用Google Closure Compiler.我的Javascript使用Javascript模块模式构建.

由于Drupal的工作方式,我正在单独编译每个JS文件.简单编译模式运行良好,但我想在每个文件上使用高级编译.

我的文件都是变体

var FOO = (function(me, $, Drupal, undefined) {
  function init (context, settings) {
    do_sutff();
  };

  Drupal.behaviors['FOO'] = {
    attach: init
  };

  return me;
}(FOO || {}, jQuery, Drupal));
Run Code Online (Sandbox Code Playgroud)

我的问题是Drupal.behaviorsDrupal中的一个特定对象,该attach属性也是一个特定的属性.当Drupal页面呈现时,Drupal.behaviors循环遍历,并attach使用正确的参数调用所有函数.换句话说,我不希望任何用Drupal对象重命名的东西.

当我使用高级编译模式时,我得到了

var c = function(a, d, b) {
  b.b.FOO = {a:function() {
    do_stuff()
  }};
  return a
}(c || {}, jQuery, Drupal);
Run Code Online (Sandbox Code Playgroud)

我试图让编译器将整个Drupal对象识别为extern而没有运气,尝试了许多变体.不管我怎么努力,.behaviors.attach始终获得改名. …

javascript drupal google-closure-compiler

1
推荐指数
1
解决办法
592
查看次数

ClojureScript cljsbuild在没有优化的情况下不会加载依赖项

我想在我的ClojureScript构建中使用figwheel.

lein cljsbuild auto已经合作,但我必须把它:optimisations :whitespace.

否则我在浏览器中收到一条消息:

Uncaught ReferenceError: goog is not defined
Run Code Online (Sandbox Code Playgroud)

然而,figwheel需要:optimisations :none运行.这是我的leiningen文件的一部分:

:cljsbuild {
          :builds
          [{:id "dev"
            :source-paths ["src/cljs"]

            :figwheel { :websocket-host "localhost"
                       ;;:on-jsload "example.core/fig-reload"
                       :autoload true
                       :heads-up-display true
                       :load-warninged-code true
                       ;;:url-rewriter "example.core/fig-url-rewrite"
                       }

            :compiler {;; :main
                       :output-to  "resources/public/js/gdb/gdb.js"
                       :output-dir "resources/public/js/gdb/cljsbuild-dev"
                       ;;:asset-path "js/out"

                       :optimizations :none
                       :source-map "resources/public/js/gdb/gdb.js.map"
                       :pretty-print true}}]}
Run Code Online (Sandbox Code Playgroud)

我缺少什么来获取缺少的依赖项?

google-closure-compiler leiningen clojurescript figwheel

1
推荐指数
1
解决办法
697
查看次数

Closure Compiler 警告 - HTMLCanvasElement 和 Element 类型不匹配

我不确定如何清除此警告:

WARNING - actual parameter 1 of    
CanvasRenderingContext2D.prototype.drawImage does not match formal parameter

found   : Element
required: (HTMLCanvasElement|HTMLImageElement|HTMLVideoElement|null)

ctx.drawImage( poolCanvas, rect.x, rect.y );
Run Code Online (Sandbox Code Playgroud)

这是相关的代码:

var /** @type {HTMLCanvasElement|Element} */ poolCanvas = document.createElement('canvas');

var /** @type {CanvasRenderingContext2D} */ ctx;

...

ctx.drawImage( poolCanvas, rect.x, rect.y );
Run Code Online (Sandbox Code Playgroud)

我尝试了各种类型声明的组合,但无法摆脱此警告。

我在这里做错了什么?

google-closure-compiler

1
推荐指数
1
解决办法
151
查看次数

使用gulp和google closure将js文件编译成单个文件而不是单个文件

我正在使用google-closure-compilergulp来缩小我的angularjs文件.

我在app/js文件夹中有3个js文件.他们是controller.js, app.js, services.js.

这是我的gulpfile代码:

var closureCompiler = require('google-closure-compiler').gulp();

gulp.task('js-closure', function () {
    return gulp.src('app/js/*.js', {base: './'})
        .pipe(closureCompiler({
            compilation_level: 'SIMPLE_OPTIMIZATIONS',
            warning_level: 'QUIET',
            language_in: 'ECMASCRIPT6_STRICT',
            language_out: 'ECMASCRIPT5_STRICT',
            output_wrapper: '(function(){\n%output%\n}).call(this)',
            js_output_file: 'output.min.js'
        }))
        .pipe(gulp.dest('./dist/js'));
});
Run Code Online (Sandbox Code Playgroud)

代码的作用是将3个js文件编译成单个文件 output.min.js

我想要的是将3个js文件编译成3个独立的js文件 controller.min.js, app.min.js, services.min.js

javascript google-closure google-closure-compiler gulp

1
推荐指数
1
解决办法
969
查看次数

Google的Closure Compiler定向(输出)的JavaScript子集是什么?

为了进一步澄清,我的意思是Closure编译器输出JavaScript的哪些部分?

我可以肯定地知道这是一个移动目标,因为游戏的名称是代码优化,所以如果是这种情况,那么对源代码的相关位的引用可能是最有用的.

javascript google-closure-compiler

1
推荐指数
1
解决办法
41
查看次数

谷歌样式表编译器CSS重命名

目前,我正在javascript文件上使用Closure Compiler.现在我还想用更短的名称缩小和重命名CSS类.

有没有办法避免在我的.js文件中重写每个jquery基于CSS字符串的选择器(即.$('#SomeID')$('.SomeClass'))基于变量的选择器?由于大多数HTML实际上是在运行时生成的,我可以轻松地移动骨架HTML这最初是在.js文件的页面中,并且document.ready函数首先将应用程序所需的框架HTML放在页面上.这样可以避免重写CSS选择器,还是选择器仍然需要重写为属性一个物体?

该文档在这里,但我没有找到它http://code.google.com/p/closure-stylesheets/#Renaming

谢谢你的建议.

css google-closure-compiler google-closure-stylesheet

0
推荐指数
1
解决办法
817
查看次数

使用eval的功能不会使其缩小

这是我的奇怪功能,让我的用户创建自己的JavaScript代码

function evalThisFunction(functionBody){        
     var func;
     eval("func = " + functionBody);
     return func;
}
Run Code Online (Sandbox Code Playgroud)

但在使用Closure Compiler(http://closure-compiler.appspot.com/)进行缩小后,我得到了这样的结果:

function a(b){eval("func = "+b);}
Run Code Online (Sandbox Code Playgroud)

你有没有看到我可以修改我奇怪的功能的方法,所以它在缩小后仍然可以工作?

javascript eval minify google-closure-compiler

0
推荐指数
1
解决办法
960
查看次数

关闭编译器es6 let关键字

我无法使用Google Closure Compiler编译带有let关键字的简单Javascript代码.

我的Javascript文件example.js:

function display() {
    let a = 'hello';
    console.log( a, 'world' );
}
display();
Run Code Online (Sandbox Code Playgroud)

我编译的JAVA代码是:

package compiler;

import static com.google.javascript.jscomp.SourceFile.fromCode;
import static com.google.javascript.jscomp.SourceFile.fromInputStream;
import static java.nio.charset.Charset.defaultCharset;

import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

import com.google.javascript.jscomp.CompilationLevel;
import com.google.javascript.jscomp.Compiler;
import com.google.javascript.jscomp.CompilerOptions;
import com.google.javascript.jscomp.CompilerOptions.LanguageMode;
import com.google.javascript.jscomp.JSError;
import com.google.javascript.jscomp.Result;
import com.google.javascript.jscomp.SourceFile;

public class CompilerMain {

    public static void main(String[] args) throws URISyntaxException, …
Run Code Online (Sandbox Code Playgroud)

javascript java google-closure-compiler ecmascript-6

0
推荐指数
1
解决办法
497
查看次数