使用Node.js进行闭包编译
我想编译这个Node.js模块(仅用于types检查)
var externalRequire = require; var Pool = externalRequire('pg-pool'); var config = {}; var pool = new Pool(config); module.exports = {};
用这些Closure编译器的选项:
java -jar compiler.jar --js_output_file output.js --use_types_for_optimization --warning_level VERBOSE --jscomp_warning=reportUnknownTypes --jscomp_warning=checkTypes --compilation_level ADVANCED_OPTIMIZATIONS --process_common_js_modules --externs externs.js --js src.js
externs.js只包含一个定义:
/** * @param name * @return {*} */ var require = function(name) {}
问题是,我不知道如何解释Closure编译器,“池”不是一个对象的实例,但types。
src.js:5: WARNING - cannot instantiate non-constructor var pool = new Pool(config); ^ src.js:5: WARNING - could not determine the type of this expression var pool = new Pool(config); ^ 0 error(s), 2 warning(s), 88,9% typed
如何避免这些错误?