当源类型为 module 时,顶层变量会被移除。这是因为模块代码中的顶层变量无法从其他模块访问。相反,脚本代码中的顶层变量被视为全局变量,可以从其他脚本中访问。如果你希望保留顶层变量,请不要使用 .mjs 文件名,也不要启用 module 选项。
可能会令人惊讶的是,字符串中的换行符在压缩后的代码中不会被移除并替换为 \n。这种行为的原因是字符转义序列 \n 占用两个字节,而换行符本身仅占用一个字节。
// 这段代码占 16 字节
const foo = "a\nb"
// 这段代码占 15 字节
const foo = `a
b`