1

SquishIt の9.8.0最新の安定したフレームワークを使用しています。

JavaScript 縮小の問題。function(imReallyLong) のような長い変数 function(n)に縮小すると

これは縮小化には問題ありませんが、eval() を使用していない場合のみです!

私の方法は:

Fire: function (jDto) {
    var sectionName = Enum.Parse(Enum.SectionID, jDto.SectionID);
    eval('Section.Init.' + sectionName + '(jDto)');
},

縮小後:

Fire: function (n) {
    var t = Enum.Parse(Enum.SectionID, n.SectionID);
    eval("Section.Init."+t+"(jDto)")
},

問題のjDto変数。文字列としてハードコードされており、SquishIt は認識できません。

変数オプションの変更などを防ぐことは可能ですか? それとももっとクールなフレームワークですか?

ありがとうございました。

4

1 に答える 1

2

これはミニファイアの動作であり、スキシットではありません。

次のようなものを使用して、MS Minifier で回避できると思います ( Ajax Minifier (AjaxMin) - EvalTreatment for JavaScript? ):

.WithMinifier(new MsMinifier(new CodeSettings { EvalTreatment = EvalTreatment.MakeAllSafe }))

YUI minifier には、eval を呼び出す関数を圧縮できるように見える ignoreEval オプションがあります ( https://github.com/BillyChan501/YUI-Compressor-.NET/blob/master/Projects/Yahoo.Yui.Compressor/Model %20Tests/JavaScriptCompressorTest.cs#L218-L256 )。あなたが持っている例は、縮小のためのデフォルトのYUIオプションを使用して「うまくいく」かもしれませんか?

.WithMinifier<YuiMinifier>()
于 2015-09-13T21:38:47.440 に答える