Closure 编译器在输出中生成非常长的变量名

Closure compiler generates very long variable names in output

我正在使用 Closure 编译器编译一个 JavaScript 文件和几个非常简单的 ES6 模块。

demo.js

import {add} from "../modules/adder.js";
import {subtract} from "../modules/subtractor.js";
console.log(add(6, 5));
console.log(subtract(6, 5));

adder.js

export function add(num1, num2) {
    return num1 + num2;
}

subtractor.js

export function subtract(num1, num2) {
    return num1 - num2;
}

编译器输出 JavaScript 文件是一个大文件(大于输入)并且包含很长的变量名称,例如以下示例:

add$$module$Users$mysername$IdeaProjects$myappdir$web$events$es$modules$adder

这正常吗?

我不关心文件大小,但如果在生产中使用这段代码,它会不必要地暴露我的开发机器文件结构,包括我的用户名。

有一个命令行选项--js_module_root可用于指定要从 ES6 模块中删除的路径前缀。如果使用,变量名称将更短,并且只会到达该路径。