如何防止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);
}
}