Gulp 기초 세팅 - by. UXKM

요약 설명

이 섹션부터 본격적으로 터미널을 이용하여 패키지를 설치합니다.
Gulp를 전역(global)과 지역(local)에 설치하고, 프로젝트 디렉터리 구조와 기초 파일을 생성합니다.

2.4.1. gulp-cli 전역(global) 설치

gulp-cliGulp터미널에서 편리하게 실행할 수 있게 해주는 유틸리티 도구입니다.
터미널에서 아래 명령어를 입력해서 gulp-cli전역(global) NPM Package에 설치합니다.
(gulp-cli 설치는 해당 PC에서 Gulp를 사용한 적이 없을 경우 최초 한 번만 진행하면 됩니다.)

위 명령어 입력 예시)

명령어 입력 예시

2.4.2. gulp 설치

gulpgulp-cli와 다르게 전역으로 설치하지 않고, gulp_setting 폴더에만 설치하면 됩니다.
--save-dev(-D) 옵션을 추가하는 이유는 gulp가 개발 단계에서만 필요한 패키지이기 때문입니다.

설치가 완료되면 gulp_setting 폴더 하위로 node_modules 폴더package-lock.json 파일이 생성됩니다.

프로젝트 폴더에 Gulp 설치

또한, package.jsondevDependencies 부분에 방금 설치한 gulp가 업데이트됩니다.

2.4.3. 작업 폴더 생성 및 기초 파일 세팅

gulp_setting 폴더 하위로 src 폴더를 생성합니다.
src 폴더는 실제 작업 파일이 위치하는 폴더입니다. (html, css, js, images 등)
src 폴더에서 코딩을 하면, gulpsrc 폴더의 작업 파일을 dist 폴더로 빌드 하게 됩니다.

'dist'라는 폴더명은 'distribute(배포)'의 약자이며 고정된 이름이 아닙니다. 세팅하면서 자유롭게 이름을 지정할 수 있습니다.
다만 대부분의 환경에서(Gulp, Vue, React 등) 'dist'로 사용하기에 UXKM에서도 'dist'로 진행합니다.

아래 구조대로 폴더와 파일을 생성한 후 각각의 파일(scss, js, html)에 아래의 코드를 복사하세요.

폴더 구조 및 파일 생성

폴더 구조 및 파일 생성

css 파일 세팅

js 파일 세팅

html 파일 세팅

html 파일은 'Gulp NJK 세팅' 페이지에서 진행합니다.

2.4.4. gulpfile.js 생성

gulpfile.jsgulp의 설정 파일이며 gulp가 해야 할 모든 작업을 정의해 줍니다.
npm으로 설치한 패키지들에 대한 각각의 역할을 선언하여, scss, lesscss로 또는 es6 문법을 일반 script 문법으로 변환 및 압축(min)을 하거나 images 파일을 무손실 압축하여 전체 이미지의 용량을 줄일 수도 있습니다.
앞서 언급된 것은 일부분이며 실제로 더 많은 편리한 것을 정의할 수 있습니다.

터미널에서 위 명령을 실행하면 아래처럼 gulpfile.js가 생성됩니다.

gulpfile.js 생성

생성된 gulpfile.js에 아래 코드를 붙여 넣습니다.

2.4.5. package.json에 gulp 실행 명령어 추가

터미널에서 gulp를 실행하기 위해 앞서 gulp-cli를 전역(global)로 설치했습니다.
이제는 gulp 실행 명령어를 package.jsonscript에 추가합니다.

터미널에서 방금 추가한 gulp dev 명령을 실행합니다.

명령을 실행하면 위에서 생성했던 gulpfile.js가 실행됩니다.

gulpfile.js 테스트

터미널gulp dev test !!! 텍스트가 출력이 된다면 여기까지의 세팅이 성공적으로 진행된 것입니다.
빨간색 에러 메시지는 우리가 dev라는 taskgulpfile 전체에 대한 설정을 하지 않아서 이기 때문에 정상입니다.

2.4.6. .gitignore 파일 생성

요약 설명

.gitignore란 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일입니다. git으로 프로젝트를 관리할 때, 그 프로젝트 안의 특정 파일들은 Git으로 관리할 필요가 없는 경우가 있습니다.

예를 들면,
  • NodeJS-Express로 개발할 때 npm module
  • Java 컴파일된(.class) 파일
  • AWS 비밀 키, JWT 비밀 키 등등이 있습니다.

npm 모듈은 용량이 크기도 하고, 프로젝트를 clone 받은 다음에 직접 npm install 해주는 것이 더 효율적이기 때문에 올리지 않습니다. 그리고 AWS 키, JWT 비밀 키 같은 것은 Github에 public으로 노출이 되면 악용될 사레가 있기 때문에 올리지 않아야 합니다.

아직 우리는 폴더를 git 저장소를 활용하여 Gulp 세팅을 하고 있지는 않지만 추후를 대비하고 반드시 알고 있어야 할 내용이므로 기초 세팅 단계에서 .gitignore 파일을 세팅을 합니다.
gulp_setting 폴더 하위로 .gitignore 파일을 생성합니다.

.gitignore 파일 생성

생성된 .gitignore 파일에 아래의 코드를 적용합니다. (주석은 제외합니다.)