2017-09-14 62 views
1

我有一個相當小的腳本來控制模態內的旋轉木馬。要啓動模式,我有一個簡單的showModal()函數,當頁面上的圖像被點擊時被調用。 但是,當JS文件被WebPack處理時,這個函數被UglifyJS剝離。下面是代碼的簡化概要:如何防止UglifyJS在由WebPack處理時丟棄未使用的函數?

$('#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軋液機選項,我一直在使用的功能的面前/*@__PURE__*/評論嘗試。對這個函數做了一個虛擬調用,我只想將它標記爲需要或忽略,所以UglifyJS不會去掉它,似乎也找不到一個簡單的方法來完成此操作。

更新 雖然不是我所期待的,下面將停止剝離出來的功能UglifyJS。 添加if語句到showModal()並在我的initialize方法中調用它,傳入-1。

function showModal(slideNumber) { 
    if (slideNumber !== -1) { 
    $('#myModal0').modal('show'); 
    carouselVideoPlayer.showSlide(slideNumber); 
    } 
} 
+0

增加了一個虛擬呼叫,但我覺得應該有更好的方法。 –

回答

0

我不熟悉如何配置Web包,但是未使用的標誌設置爲false作爲的醜化壓縮選項的一部分可能會解決這個問題。

見壓縮選項文件位置: https://github.com/mishoo/UglifyJS2#compress-options

你的解決方法關閉功能到正在使用的一個,因此它不會讓你上面提到的更改後刪除。

+0

這可能有用。我最終重構了整個事情,使用主JS代碼檢查。還是)感謝你的建議! –

+0

如果有人確實嘗試了這一方法,那麼請投票選舉。 –

相關問題