我已经有一段时间了,因为我已经在编译器中使用了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也只是一个空白对象文字。