TOOL/BUILDER 2016. 4. 13. 09:45

///// 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

'TOOL > BUILDER' 카테고리의 다른 글

[Babel] Javascript - Async Transform  (0) 2018.12.18
[Gradle] gradle wrapper  (0) 2017.09.13
[Gulp] gulp-shell 걸프에서도 쉘스크립트가 가능하다.  (0) 2016.02.09
[Gulp] 시작하기 - 버전 3  (0) 2016.01.17
[GRUNT 0.4.x] Gruntfile.js  (0) 2016.01.02