Vue项目混淆后方法名乱码导致报错怎么办?
最近给Vue项目做代码混淆时遇到奇怪的问题,混淆后的JS文件里方法名变成了’_$_0’这种乱码形式,但运行时却报’Cannot read properties of undefined’错误。
我的组件代码像这样写的:<pre class="pure-highlightjs line-numbers"><code class="language-javascript"><code class="language-html">
<template>
<button @click="handleClick">点击</button>
</template>
<script>
export default {
methods: {
handleClick() {
console.log('按钮被点击');
}
}
}
</script>
</code></code></pre>
混淆配置用的是terser-webpack-plugin,默认开启了mangle选项。但生产构建后发现,其他模块引用handleClick时突然变成undefined。试过关闭mangle就正常了,但这样就没法混淆了,该怎么调整配置呢?
reserved字段保留方法名不被混淆。具体配置如下:如果组件里还有其他方法也可以一并加进去,或者写个正则匹配保留所有方法名。
如果方法太多可以一次性加完,或者用正则匹配保留特定格式的方法名。