2017-06-01 15 views
0

私はgulpの設定でgulp-uglifyを使用しています。私のjsコードを本番環境に合わせるためです。`gulp-uglify`がグローバル変数を移動させないようにするには?

私はこの

var test = 1; 

function getTest(myTest) 
{ 
    if(!myTest) { 
     return test; 
    } 

    return myTest; 
} 

のようなコードを持っているしかし、私は実行すると、出力になる飲み込むには(私は読みやすさのためにきれいに保たれ)

私は順序や私を変更 gulp-uglifyを防ぐことができますどのように
function getTest(myTest) 
{ 
    if(!myTest) { 
     return test; 
    } 

    return myTest; 
} 
var test = 1; 

グローバル変数。

私はまず自分のファイルを連結してからuglifyします。

次のオブジェクトをuglifyに渡そうとしましたが、依然として順序が変更されています。ここで

uglify({ mangle: false }) 
uglify({ mangle: { reserved: ['test'] } }) 

は、ここでは、依存関係

"license": "ISC", 
    "devDependencies": { 
    "gulp": "^3.9.1", 
    "gulp-autoprefixer": "^3.1.1", 
    "gulp-concat": "^2.6.0", 
    "gulp-debug": "^2.1.2", 
    "gulp-ignore": "^2.0.1", 
    "gulp-minify-css": "^1.2.4", 
    "gulp-sass": "^2.3.2", 
    "gulp-sourcemaps": "^1.6.0", 
    "gulp-uglify": "^2.0.0", 
    "gulp-util": "^3.0.7" 
    } 

のリストである私の一気タスク

gulp.task('compileJs', function() { 
     gulp.src(jsFiles['final']) 
       .pipe(sourcemaps.init()) 
       //only uglify if gulp is ran with '--type production' 
       .pipe(isProduction() ? uglify() : gutil.noop()) 
       .pipe(concat('final.js')) 
       .pipe(sourcemaps.write()) 
       .pipe(gulp.dest('./Public/Js')); 

}); 

答えて

1

falseからhoist_funsオプションを設定しています。

.pipe(uglify({ 
    compress: { 
     hoist_funs: false 
    } 
}) 
+0

これは、私に次のエラー 'events.js:160 throw erを与えています。 //処理されていない 'error'イベント ^ GulpUglifyError:JavaScriptを縮小できませんこれは私が 'uglify({hoist_funs:false}) 'と呼んだものです –

+0

@MikeAは問題があった場合に正しい構文を追加しました。 'hoist_funs'は' compress'オプションに属します。 –

+0

ありがとうございました。それはそれをした! –

関連する問題