2017-06-29 5 views
0

にあった値とjavascriptの変数名を置き換えている私は、コードを持っているように:一息-縮小化が関数呼び出し

define('identity', function() { 
    // LOT OF CONSTANTS AND USAGE HAS BEEN REMOVED FOR BREVITY 
    'use strict'; 
    var CREATE_ACCOUNT = 'CreateAccount'; 
    var ACCOUNT = 'Account'; 
    var CONNECT = 'Connect'; 
    var SWITCH = 'Switch'; 
    var FB = 'FB'; 
    var PIPE_SEPARATOR = ' | '; 
    var DOT_SEPARATOR = '.'; 
    var COMMA_SEPARATOR = ', '; 

    function concatenateWithDotSeparater(array) { 
     return concatenateWithSeparator(array,DOT_SEPARATOR); 
    } 

    function concatenateWithPipeSeparater(array) { 
     return concatenateWithSeparator(array,PIPE_SEPARATOR); 
    } 

    function concatenateWithCommaSeparater(array) { 
     return concatenateWithSeparator(array, COMMA_SEPARATOR); 
    } 

    function concatenateWithSeparator(array, separator) { 
     return array.join(separator); 
    } 

    return { 
     signUp: { 
      facebookConnect : concatenateWithDotSeparater([CREATE_ACCOUNT, FB, CONNECT]), 
      } 
    }; 
}); 

基本的に、私は繰り返した定数をたくさん持っていたし、実際の値を生成するために連結する必要があります。そこで、繰り返し値を保持して関数を介して連結する定数を作成しました。

gulp-minifyバージョン1.0.0を使用してJSを縮小しようとしたときの結果は、 return {signUp:{facebookConnect:e(["CreateAccount"、 "FB"、 "Connect"])}} }

実際の値が注入されました。どうすればこれを防ぐことができますか?

ように私が出力を取得したい:私は次のように縮小化使用してい

リターン{E([S、D、E])}申し込み:{facebookConnect}

.pipe(minify({ 
    ext: { 
     src: '.js', 
     min: '-min.js' 
    } 
})) 

ください助けて。

答えて

0

オプションのmangleを設定した場合、名前を変更しないで保存する名前のリストを設定する必要がある場合、いくつかの変数の名前を変更することは避けることができます。フードの下でgulp-minifyパケットはuglify-esパケットを使用します。詳細なドキュメントについては、Look at itを参照してください。

このオプションを試してください:

.pipe(minify({ 
    ext: { 
     src: '.js', 
     min: '-min.js' 
    }, 
    mangle: { reserved: ['CREATE_ACCOUNT', 'ACCOUNT', 'CONNECT'] // etc 
})) 
+0

はい、私はuglify-jsのドキュメントを介してビットを行ってきましたが、多くの助けを得ることはありませんでした。私はあなたの提案を試みたが、それは役に立たなかった。あなたの助けをありがとう:) –

+0

@Anuj Yadav Ok。別の解決策を試すことができます - 定数をグローバル変数にします。 – YD1m

関連する問題