我正在编写一个单文件脚本,它是通过一个<script>标记在页面上包含的,它是用Vite.js构建的,使用的是简化器。
在进行更改后,我注意到,每当我调用代码时,我的脚本构建版本就会突然抛出错误。
在做了一些调查之后,我注意到一个站点上的另一个包(包括脚本)正在调用一个名为ga()的函数。之所以发生此错误,是因为Terser正在缩小/损坏脚本中的一个函数,并将其命名为ga(),然后与我无法控制的另一个函数发生冲突。
我以为特塞尔可以选择
但似乎两者都没有。
通过将以下内容添加到我的配置中,我成功地解决了这个问题:
minify: "terser",
terserOptions: {
keep_fnames: true,
},这阻止了Terser损坏任何函数名,但显然这并不好,因为它浪费了大量的缩小功能的潜力。
是否有任何方法告诉Terser仍然损坏所有函数,但同时也用a_作为前缀?
发布于 2021-10-03 19:42:45
是的,您可以使用regex、你可以查一下这篇文章或转到mangle.properties获得完整的文档。
terserOptions: {
mangle: {
properties: {
regex: /(^P1|^p1|^_p1)[A-Z]\w*/
}
}
}https://stackoverflow.com/questions/69427550
复制相似问题