🥤 gulp-concat
concat은 연결하다는 의미로 배열 메소드로도 쓰이는 친구죠. gulp-concat 플러그인도 유사한 의미로 여러 파일들을 하나로 연결(?)해줍니다.
var concat = require('gulp-concat');
gulp.task('scripts', function() {
return gulp.src(['./lib/file3.js', './lib/file1.js', './lib/file2.js'])
.pipe(concat('all.js'))
.pipe(gulp.dest('./dist/'));
});
lib 폴더 아래에 있는 자바스크립트 파일 3개를 all 이라는 파일명의 js파일 하나로 합쳐줍니다. 그리고 all.js는 dist 폴더 아래에 위치하겠죠?
그러면 이전 글의 styles task에 concat을 추가해 보겠습니다.
Installing
npm i -D gulp-concat
설치합니다.
"devDependencies": {
"gulp": "^4.0.2",
"gulp-concat": "^2.6.1",
"gulp-sass": "^4.1.0"
}
package.json에 추가되었겠죠?
button.scss 👉🏻 all.css 로 컴파일하기
gulp-concat은 여러 파일들을 합쳐줄 뿐 아니라, 파일명도 변경할 수 있습니다. 현재 우리가 작성한 스타일은 button.scss 하나 뿐입니다.
button.scss를 button.css로 컴파일 했던 것을 all.css 로 변경해 보겠습니다.
const concat = require('gulp-concat');
(...)
function styles() {
return src(paths.css.src, { sourcemaps: true })
.pipe(sass(options.scss).on('error', sass.logError))
.pipe(concat('all.css')) // <<<- 이렇게 추가^^
.pipe(dest(paths.css.dest, { sourcemaps: true }))
}
일전에 컴파일됬던 button.css 파일을 삭제하고, 터미널에 gulp style 명령어를 실행합니다. 정상 결과는 dist/css/all.css 가 생성됩니다.
만약 CSS 코드를 축소시켜주는 플러그인을 끼고 한다면 all.min.css 로 컴파일할 수도 있겠죠.
여러 scss 파일을 하나로 컴파일해야 한다면?
실제 프로젝트에서는 보통 scss를 컴포넌트 별로 분리해서 작업하겠죠? scss 파일들을 더 추가해 보겠습니다.
.input {
width: 100%;
height: 36px;
padding: 3px 5px;
}
src/scss/input.css 추가해서 간략하게 작성하고 gulp style 실행!
그러면 버튼과 인풋 코드들이 all.css 하나로 합쳐진 것을 볼 수 있습니다.
이것은 처음부터 와일드카드 문자로 경로로 설정해놨기 때문입니다.
src: ‘./src/scss/*.scss’,
src: [
'./src/scss/button.scss',
'./src/scss/input.scss'
]
와일드카드 문자를 사용하지 않는다면 이렇게 작성해야겠죠?ㅎㅎ
부트스트랩을 기반해서 하는 등 스타일 디렉토리가 복잡해질 수도 있습니다. 그럴 경우엔 어떻게 구성하는 지는 플러그인들 기초 설명 글을 끝내고 올려 보겠습니다.
Completed Code
const { src, dest } = require('gulp');
const sass = require('gulp-sass');
const concat = require('gulp-concat');
const paths = {
css: {
src: './src/scss/*.scss',
dest: './dist/css'
}
}
const options = {
scss: {
outputStyle: 'expanded',
sourceComments: false
}
}
function styles() {
return src(paths.css.src, { sourcemaps: true })
.pipe(sass(options.scss).on('error', sass.logError))
.pipe(concat('all.css'))
.pipe(dest(paths.css.dest, { sourcemaps: true }))
}
exports.style = styles;
'Tools > Gulp' 카테고리의 다른 글
gulp-sass 설치하기 (0) | 2020.05.19 |
---|---|
🥤 Gulp 설치하기 (0) | 2020.03.27 |