const gulp = require('gulp');
const stylish = require('jshint-stylish');
const jshint = require('gulp-jshint');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
const rename = require('gulp-rename');
const del = require('del');
const path = {
js: {
src: 'src/js/libs/**/*.js',
dest: 'dist/',
filename: 'DOMlibrary.js'
}
};
// 파일 삭제
gulp.task('clean', function () {
return del([path.js.dest]);
});
// JS 문법 검사
gulp.task('js:hint', function () {
return gulp.src(path.js.src)
.pipe(jshint())
.pipe(jshint.reporter(stylish));
});
// JS 병합
gulp.task('js:concat', function () {
return gulp.src(path.js.src)
.pipe(concat(path.js.filename))
.pipe(gulp.dest(path.js.dest));
});
// JS 압축
gulp.task('js:uglify', function () {
return gulp.src(path.js.dest + path.js.filename)
.pipe(uglify())
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest(path.js.dest));
});
// JS 문법검사 > 병합 > 압축
gulp.task('scripts',
gulp.series('clean', 'js:hint', 'js:concat', 'js:uglify')
);
// Gulp.task()를 사용해 기본(Default) 테스크 정의
gulp.task('default', function () {
// 콘솔(Console)에 메시지 기록(log)
console.log('gulp default 일이 수행되었습니다.');
});
깨알 Tip
del(['dist/*', '!dist/dont-delete.js']) 명령어를 수행하면 [dist] 디렉터리에서 dont-delete.js를 제외한 모든 파일을 삭제합니다.
즉, 디렉터리/파일 경로 앞에 느낌표(!)를 붙이면 삭제 대상에서 제외됩니다.
const gulp = require('gulp');
const stylish = require('jshint-stylish');
const jshint = require('gulp-jshint');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
const rename = require('gulp-rename');
const del = require('del');
const path = {
js: {
src: 'src/js/libs/**/*.js',
dest: 'dist/',
filename: 'DOMlibrary.js'
}
};
// 파일 삭제
gulp.task('clean', function () {
return del([path.js.dest + '*']);
});
// JS 문법 검사
gulp.task('js:hint', function () {
return gulp.src(path.js.src)
.pipe(jshint())
.pipe(jshint.reporter(stylish));
});
// JS 병합
gulp.task('js:concat', function () {
return gulp.src(path.js.src)
.pipe(concat(path.js.filename))
.pipe(gulp.dest(path.js.dest));
});
// JS 압축
gulp.task('js:uglify', function () {
return gulp.src(path.js.dest + path.js.filename)
.pipe(uglify())
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest(path.js.dest));
});
// JS 문법검사 > 병합 > 압축
gulp.task('scripts',
gulp.series('js:hint', 'js:concat', 'js:uglify')
);
// Gulp.task()를 사용해 기본(Default) 테스크 정의
gulp.task('default',
gulp.series('clean', 'scripts')
);