如何防止UglifyJS在WebPack处理时删除未使用的函数?

如何防止UglifyJS在WebPack处理时删除未使用的函数?,webpack,minify,uglifyjs,Webpack,Minify,Uglifyjs,我有一个相当小的脚本,可以控制模式中的旋转木马。要启动模式,我有一个简单的showModal()函数,当单击页面上的图像时会调用该函数。 然而,当Web包处理JS文件时,UglifyJS正在剥离此功能。以下是代码的简化概要: $('#iconified').on('keyup', function() { var input = $(this); input.addClass('empty'); }); var carouselVideoPlayer = (function() { var i

我有一个相当小的脚本,可以控制模式中的旋转木马。要启动模式,我有一个简单的
showModal()
函数,当单击页面上的图像时会调用该函数。 然而,当Web包处理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();
});

我不熟悉如何配置Web包,但是将unused标志设置为false作为Uglify压缩选项的一部分可能会解决这个问题

请参见此处的压缩选项文档:


您的解决方法将函数转换为正在使用的函数,因此在您前面提到的更改后不会将其删除。

添加了一个虚拟调用,但我觉得应该有更好的方法。这可能会起作用。我最终重构了整个过程,在主JS代码中进行了检查。谢谢你的建议!如果有人真的尝试了这一点,它的工作,请起来投票。
function showModal(slideNumber) {
  if (slideNumber !== -1) {
    $('#myModal0').modal('show');
    carouselVideoPlayer.showSlide(slideNumber);
  }
}