[Gulp] uglify toplevel
///// gulp
보안상 난독화를 해야할 때, uglify를 사용한다.
하지만 그냥 사용한다면, 보통 수준의 난독화를 지원할 것이다.
간단히 이 옵션을 파라미터로 사용하여 난독화 수준을 높일 수 있다.
{mangle:{toplevel:true}}
이렇게
uglify({mangle:{toplevel:true}})
///// gulpfile.js - Setup Plugin (플러그인 설정)
// Load Plugin
var gulp = require('gulp');
//plugin for js
var jshint = require('gulp-jshint');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var stripDebug = require('gulp-strip-debug');
var rename = require('gulp-rename');
//set path
var src = 'public/src';
var dest = 'public/dist';
var jsFileNm = 'js.js';
var cssFileNm = 'css.css';
var fileSuffix = '.min';
var paths = {
"src":{
"js" : [src+'/js/**/*.js', src+'/lib/**/*.js'],
"css" : [src+'/css/**/*.css', src+'/lib/**/*.css'],
"res" : src+'/res/**/*',
"html" : src+'/**/*.html'
},
"dest":{
"js" : dest+'/js',
"css" : dest+'/css',
"res" : dest+'/res',
"html" : dest+'/'
}
};
///// before: gulpfile.js - Javascript Task
// js
gulp.task('js', function(){
return gulp.src(paths.src.js)
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(concat(jsFileNm))
.pipe(stripDebug())
.pipe(uglify())
.pipe(rename({suffix:fileSuffix}))
.pipe(gulp.dest(paths.dest.js));
});
///// after: gulpfile.js - Javascript Task - {mangle:{toplevel:true}}
// js
gulp.task('js', function(){
return gulp.src(paths.src.js)
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(concat(jsFileNm))
.pipe(stripDebug())
.pipe(uglify({mangle:{toplevel:true}}))
.pipe(rename({suffix:fileSuffix}))
.pipe(gulp.dest(paths.dest.js));
});
///// Command
gulp js
///// Other Way
try to wrap your code in function scope
(function(){
// your code here
})();
///// 참조
uglyfy top level functions with gulp:
http://stackoverflow.com/questions/24344645/uglyfy-top-level-functions-with-gulp