JS文件压缩后方法调用出现undefined,如何解决?

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)}}

解决方法

  1. 检查压缩后的代码是否完整

    压缩过程中,可能会删除注释或无用的代码块,如果实际调用的函数或变量已压缩移除,就会导致undefined。

  2. 使用映射文件恢复函数名

    有些压缩工具会提供映射文件,该文件包含压缩后代码和原始代码之间的对应关系,可以使用它将压缩后的函数名映射回原始函数名。

以上就是JS文件压缩后方法调用出现undefined,如何解决?的详细内容,更多请关注其它相关文章!