const gulp = require('gulp');
const csslint = require('gulp-csslint');
const concatcss = require('gulp-concat-css');
const uglifycss = require('gulp-uglifycss');
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 + '*']);
});
// NPM 설치 모듈 : gulp-csslint, gulp-concat-css, gulp-uglifycss
// CSS 문법 검사 > 병합 > 압축
gulp.task('styles', function () {
gulp.src('src/css/**/*.css')
.pipe(csslint())
.pipe(csslint.formatter())
.pipe(concatcss('style.css'))
.pipe(uglifycss())
.pipe(gulp.dest('dist/css/'))
});
// 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')
);
csslint.reporter() 메소드가 작동하지 않아 검색을 해보았습니다.
깨알 Tip
자바스크립트 업무 프로세스를 나눠 별도의 업무를 정의했던 것처럼 CSS 업무도 동일하게 처리할 수 있습니다.
const gulp = require('gulp');
const csslint = require('gulp-csslint');
const concatcss = require('gulp-concat-css');
const uglifycss = require('gulp-uglifycss');
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 = {
css: {
src: 'src/css/**/*.css',
dest: 'dist/css/',
filename: 'style.css'
},
js: {
src: 'src/js/libs/**/*.js',
dest: 'dist/',
filename: 'DOMlibrary.js'
}
};
// 파일 삭제
gulp.task('clean', function () {
return del([path.js.dest + '*']);
});
// NPM 설치 모듈 : gulp-csslint, gulp-concat-css, gulp-uglifycss
// CSS 문법 검사 > 병합 > 압축
gulp.task('styles', function () {
return gulp.src(path.css.src)
.pipe(csslint())
.pipe(csslint.formatter())
.pipe(concatcss(path.css.filename))
.pipe(uglifycss())
.pipe(gulp.dest(path.css.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')
);
const gulp = require('gulp');
const csslint = require('gulp-csslint');
const concatcss = require('gulp-concat-css');
const uglifycss = require('gulp-uglifycss');
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 = {
css: {
src: 'src/css/style.css',
dest: 'dist/css/',
filename: 'style.css'
},
js: {
src: 'src/js/libs/**/*.js',
dest: 'dist/',
filename: 'DOMlibrary.js'
}
};
// 파일 삭제
gulp.task('clean', function () {
return del([path.js.dest + '*']);
});
// NPM 설치 모듈 : gulp-csslint, gulp-concat-css, gulp-uglifycss
// CSS 문법 검사 > 병합 > 압축
gulp.task('styles', function () {
return gulp.src(path.css.src)
.pipe(csslint())
.pipe(csslint.formatter())
.pipe(concatcss(path.css.filename))
.pipe(uglifycss())
.pipe(gulp.dest(path.css.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')
);
Git Bash에서 gulp styles 명령어를 실행하면 @import로 호출된 CSS 파일들의 병합이 진행되며,
const gulp = require('gulp');
const csslint = require('gulp-csslint');
const concatcss = require('gulp-concat-css');
const uglifycss = require('gulp-uglifycss');
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 = {
css: {
src: 'src/css/style.css',
dest: 'dist/css/',
filename: 'style.css'
},
js: {
src: 'src/js/libs/**/*.js',
dest: 'dist/',
filename: 'DOMlibrary.js'
}
};
// 파일 삭제
gulp.task('clean', function () {
return del([path.js.dest + '*']);
});
// NPM 설치 모듈 : gulp-csslint, gulp-concat-css, gulp-uglifycss
// CSS 문법 검사 > 병합 > 압축
gulp.task('styles', function () {
return gulp.src(path.css.src)
.pipe(csslint({
'import': false
}))
.pipe(csslint.formatter())
.pipe(concatcss(path.css.filename))
.pipe(uglifycss())
.pipe(gulp.dest(path.css.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')
);
const gulp = require('gulp');
const csslint = require('gulp-csslint');
const concatcss = require('gulp-concat-css');
const uglifycss = require('gulp-uglifycss');
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 = {
css: {
src: 'src/css/style.css',
dest: 'dist/css/',
filename: 'style.css'
},
js: {
src: 'src/js/libs/**/*.js',
dest: 'dist/',
filename: 'DOMlibrary.js'
}
};
// 파일 삭제
gulp.task('clean', function () {
return del([path.js.dest + '*']);
});
// NPM 설치 모듈 : gulp-csslint, gulp-concat-css, gulp-uglifycss
// CSS 문법 검사 > 병합 > 압축
gulp.task('styles', function () {
return gulp.src(path.css.src)
.pipe(csslint({
'import': false
}))
.pipe(csslint.formatter())
.pipe(concatcss(path.css.filename))
.pipe(gulp.dest(path.css.dest))
.pipe(uglifycss())
.pipe(rename({
suffix: '.min'
}))
.pipe(gulp.dest(path.css.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')
);