2017-09-14 10 views
1

私は、モーダル内のカルーセルを制御する非常に小さなスクリプトを持っています。モーダルを起動するには、単純なshowModal()関数があります。この関数は、ページ上のイメージをクリックすると呼び出されます。 しかし、JSファイルがWebPackによって処理されるとき、この関数はUglifyJSによって削除されています。私は予約showModalとマングルオプションを使用しようとしましたし、私は、関数の前で/*@__PURE__*/コメントを使用して試してみましたWebPackで処理したときに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(); 
}); 

:ここでは、コードの単純化された輪郭があります。この関数にダミーの呼び出しを行うのに手間がかかりません。必要に応じてマークするか無視して、UglifyJSはそれを取り除いて簡単な方法で見つけることができません。更新

私が望んでいたではない何が、以下の機能を取り去るからUglifyJSを停止します。 ifステートメントをshowModal()に追加し、initializeメソッドで-1を渡して呼び出します。

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

ダミーコールを追加しましたが、より良い方法があるはずです。 –

答えて

0

私は、Webパックを構成する方法に慣れていないんだけど、Uglifyの圧縮オプションの一部としてfalseに未使用のフラグを設定することは可能性がこの問題を解決するだろう。

は、ここでは圧縮オプションのマニュアルを参照してください: https://github.com/mishoo/UglifyJS2#compress-options

あなたの問題を回避するには、それはあなたが上記の変更後に削除されませんので、使用されているものに機能をオンにします。

+0

これはうまくいく可能性があります。私はメインのJSコードのチェックで作業するためにすべてをリファクタリングしました。しかし、提案をありがとう! –

+0

誰かがこれを試して動作している場合は、投票してください。 –

関連する問題