让变量在闭包编译器上发生冲突

let variable conflict on closure compiler

我有 2 个 javascript 文件,每个文件在文件范围内都有一个变量 'let logger'。并且 file2 导入 file1.

file1.js

let logger;

file2.js

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

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

有什么办法可以抑制这个错误吗?

JS 解析器不会为任何类型的变量创建文件作用域。 NodeJS 文件是具有独特范围的模块。如果您的文件作为模块处理,它将被赋予一个唯一的范围。

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

然而,Closure Compiler 主要是为浏览器设计的。它目前的设计目的不是为了正确地捆绑针对 NodeJS 的代码——尽管一些用户只使用 Node 的类型检查功能。