Closure Compiler:表达式不可调用

时间:2015-04-11 12:29:21

标签: javascript google-closure-compiler google-closure-library

我已经有一段时间了,因为我已经在编译器中使用了Closure库+高级模式。我的编译输出:

({})();

我收到了这个编译警告:

Error: index.js:4: WARNING - {} expressions are not callable 
app.main.start();
^

在开发模式下一切正常(使用base.js)。这是我的设置:

// index.js -> let compiler know app entry point
goog.provide('app.main.start');

goog.require('app.main');
app.main.start();

实际应用程序从这里开始

// app.js
goog.provide('app.main');

goog.require('goog.dom.fullscreen');
// ... other goog.requires

/**
 *
 */
app.main.start = function(){
    // ... app definition. 
    // see https://github.com/formigone/html5multiplayer/blob/master/megaman/closure/game.js
};

这就是我如何编译(使用Gulp)

gulp.task('build', function () {
    gulp.src(['index.js', 'app.js', 'src/**/*.js', 'node_modules/closure-library/closure/goog/**/*.js'])
        .pipe(closureCompiler({
            compilerPath: '/usr/local/google-closure/compiler.jar',
            fileName: '../dist/app.min.js',
            compilerFlags: {
                closure_entry_point: 'app.main.start',
                compilation_level: 'ADVANCED_OPTIMIZATIONS',
                define: [
                    "goog.DEBUG=false"
                ],
                only_closure_dependencies: true,
                warning_level: 'VERBOSE',
                create_source_map: 'app.comp.js.map'
            }
        }));
});

即使在SIMPLE_OPTIMIZATIONS上,app.main也只是一个空白对象文字。

0 个答案:

没有答案