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 模块中删除的路径前缀。如果使用,变量名称将更短,并且只会到达该路径。
我正在使用 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 模块中删除的路径前缀。如果使用,变量名称将更短,并且只会到达该路径。