全部 在使用最新的Webpack进行生产构建期间,我遇到了奇怪的行为:
代码示例:
export const addRoute = (match, callback) => {
init();
allRoutes.push({
match: new RegExp(match),
callback
});
};
function init() {
allRoutes = [];
console.warn('init hash');
event = document.createEvent("Event");
event.initEvent("popstate", false, true);
window.addEventListener('popstate', executeRoute);
init = () => {};
}
编译为(BABEL + minify):
t.addRoute = function(e, t) {
!function() {
i = [];
console.warn("init hash");
o = document.createEvent("Event");
o.initEvent("popstate", !1, !0);
window.addEventListener("popstate", r);
(function() {}
)
}(),
i.push({
match: new RegExp(e),
callback: t
})
}
这会引起麻烦->我无法noit我的init函数,它会在每次调用addRoute时执行。不好。
在生产模式下从webpack @ 3-> webpack@4.16.5切换时会出现问题。
有什么办法可以取消这种行为? 我检查了uglifyJS->看起来这不是他的工作(但我不确定)