JS文件压缩后方法调用出现undefined,如何解决?
js文件压缩导致方法调用变为undefined
压缩后的JS文件调用方法时出现undefined,这是因为压缩工具可能更改了函数或变量的名称。
示例代码
function adduserlis(e, l) { var i = $(e).length; let n = $(e).eq(parseInt(Math.random() * i + 1 - 1)); n.before(l), $(e).eq(0).after(l), $(e).eq(i + 1).after(l); } function add_category(e) { let d = $(e); for (let n = 0; n < d.length; n++) { let e = d.eq(n).children(), l = e.eq(Math.floor(Math.random() * e.length - 1 + 1)), i = l.clone().addClass("d-none"); i.find("a").attr("href", "/add"), l.before(i); } }
压缩后的代码:
function a(e,l){var i=$(e).length;let n=$(e).eq(parseInt(Math.random()*i+1-1));n.before(l),$(e).eq(0).after(l),$(e).eq(i+1).after(l)}function b(e){let d=$(e);for(let n=0;n<d.length;n++){let e=d.eq(n).children(),l=e.eq(Math.floor(Math.random()*e.length-1+1)),i=l.clone().addClass("d-none");i.find("a").attr("href", "/add"), l.before(i)}}
解决方法
-
检查压缩后的代码是否完整
压缩过程中,可能会删除注释或无用的代码块,如果实际调用的函数或变量已压缩移除,就会导致undefined。
-
使用映射文件恢复函数名
有些压缩工具会提供映射文件,该文件包含压缩后代码和原始代码之间的对应关系,可以使用它将压缩后的函数名映射回原始函数名。
以上就是JS文件压缩后方法调用出现undefined,如何解决?的详细内容,更多请关注其它相关文章!