让闭包编译器上的变量冲突

时间:2017-12-07 14:04:32

标签: google-closure-compiler

我有2个javascript文件,每个文件都有一个变量'让记录器'在文件范围内。并且file2导入file1。

file1.js

let logger;

file2.js

mod = require("./file1.js); let logger;

Javascript解析器(nodejs)为let变量(而不是全局范围)创建文件范围。但JSC_REDECLARED_VARIABLE_ERROR在闭包编译器中抛出。

有没有办法抑制此错误?

1 个答案:

答案 0 :(得分:1)

JS解析器不为任何类型的变量创建文件范围。 NodeJS文件是具有唯一范围的模块。如果您的文件作为模块处理,则会给它一个唯一的范围。

对于commonJS模块,使用编译器的--process_common_js_modules标志将识别并捆绑CommonJS模块。

然而,Closure Compiler主要用于定位浏览器。它目前不是为了正确捆绑以NodeJS为目标的代码而设计的 - 尽管有些用户仅对Node使用类型检查功能。