我正在开发一个单文件脚本,该脚本旨在通过<script>
标签包含在页面中,它是使用 Terser 缩小器使用 Vite.js 构建的。
进行更改后,我注意到每当我调用 Google Analytics 代码时,我的脚本的构建版本都会突然抛出错误。
在进行了一些挖掘之后,我注意到我包含脚本的站点上的其他包之一正在调用一个名为ga()
. 发生错误是因为 Terser 正在缩小/修改我的脚本中的函数并命名它ga()
,然后与我无法控制的其他函数发生冲突。
我认为Terser 可以选择
- 不修改为特定名称
- 为所有损坏的函数添加前缀
但它似乎也没有。
我设法通过将以下内容添加到我的配置来解决问题:
minify: "terser",
terserOptions: {
keep_fnames: true,
},
这阻止了 Terser 修改任何函数名称,但这显然不是很好,因为它浪费了大量的缩小潜力。
有什么方法可以告诉 Terser 仍然破坏所有功能,但这样做的同时还要为其添加前缀a_
例如?