我有一个相当小的脚本来控制模态中的旋转木马。要启动模态,我有一个简单的showModal()
函数,当单击页面上的图像时会调用该函数。
但是,当WebPack处理JS文件时,UglifyJS会剥离此函数。以下是代码的简化概述:
$('#iconified').on('keyup', function() {
var input = $(this);
input.addClass('empty');
});
var carouselVideoPlayer = (function() {
var initialized = false;
var videoCarousel;
function initCarousel() {
videoCarousel.carousel({
interval: false
});
}
return {
init: function() {
initCarousel();
initialized = true;
}
};
})();
function showModal(slideNumber) {
$('#myModal0').modal('show');
carouselVideoPlayer.showSlide(slideNumber);
}
jQuery(document).ready(function($) {
var thumbnails = [];
for (var i = 0; i < 4; i++) {
thumbnails.push($('#carousel-selector-' + i));
}
carouselVideoPlayer.init();
});
我尝试使用保留showModal
的mangle选项,我尝试在函数前面使用/*@__PURE__*/
注释。如果没有对此函数进行虚拟调用,我只想将其标记为需要或忽略,以便UglifyJS不会将其删除,并且似乎无法找到一种简单的方法来执行此操作。
更新
虽然不是我所希望的,但以下将阻止UglifyJS剥离该功能。
向showModal()
添加了一个if语句,并在我的initialize方法中调用它,传入-1。
function showModal(slideNumber) {
if (slideNumber !== -1) {
$('#myModal0').modal('show');
carouselVideoPlayer.showSlide(slideNumber);
}
}
答案 0 :(得分:0)
我不熟悉如何配置Web Pack,但将未使用的标志设置为false作为Uglify压缩选项的一部分可能会解决此问题。
请参阅此处的压缩选项文档: https://github.com/mishoo/UglifyJS2#compress-options
您的解决方法将函数转换为正在使用的函数,因此在上述更改后它不会被删除。