闭包编译器在输出中生成很长的变量名

问题描述

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

demo.js

sizeof

adder.js

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

subtractor.js

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

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

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

这正常吗?

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

解决方法

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