Watching Files - by. UXKM

  • Gulp
  • Web Server & Watching Files
  • Watching Files

요약 설명

파일이 변경되거나 업데이트되면 반드시 빌드 과정을 거쳐야 변경사항이 결과물에 반영됩니다.
Gulp의 watch 기능을 이용하면 파일 변경을 자동으로 감지하여 변경된 파일과 연관된 task를 실행하여 빌드한 후, 브라우저에 실시간으로 변경사항을 반영할 수 있습니다.

5.1.1. path 설치

터미널에서 아래 명령을 실행하여 path를 설치합니다.
path는 Node.js의 내장 모듈로, 파일 시스템에서 파일 경로와 디렉터리 경로를 다룰 때 사용하는 유틸리티입니다.
Gulp에서 watch 기능을 이용하다 보면 src 폴더의 파일이 삭제될 때, 대응되는 dist 폴더의 빌드된 파일도 같이 삭제해야 하는 경우가 있습니다. 이때 원본 파일의 경로를 분석하여, dist 내 대응 경로를 계산할 때 path 모듈이 활용됩니다.
gulp-watch는 gulp의 내장 api이므로 별도의 패키지 설치가 필요 없습니다.

5.2.2. gulpfile.babel.js 세팅

gulpfile.babel.js 파일의 코드를 아래처럼 추가 및 수정합니다. (영역별 설명은 주석으로 대체합니다.)
변경이 없는 부분은 생략되며, 추가된 부분수정, 삭제된 부분의 코드만 표시됩니다.
또한 변경 없음, 추가된 부분, 수정, 삭제된 부분을 표시하는 텍스트는 마우스 드래그로 선택되지 않으므로 편리하게 코드를 복사할 수 있습니다.
전체 코드는 에디터기 오른쪽 [View full code]를 클릭하여 확인할 수 있습니다.

5.2.3. gulp dev 실행

gulpfile.babel.js 파일을 세팅한 후 터미널에서 아래 명령을 실행합니다.

Gulp가 샐행되고 터미널에 Gulp의 작업 내용이 출력됩니다.

gulp dev 실행시 터미널에 작업내용 출력

watch가 실행되는 것을 확인할 수 있고, watchgulp 프로세스를 종료시킬 때까지 계속해서 지정한 파일을 감시해야 하기 때문에 종료되지 않습니다.

5.2.4. gulp-watch 동작 확인

파일 생성

src > html 폴더에 임의로 test_file.njk를 생성하면 gulphtml로 빌드하여 dist 폴더에 test_file.html을 생성합니다. (아래 영상 참고)

파일 삭제

방금 생성한 src > html 폴더의 test_file.njk를 삭제하면 gulp-watch는 이를 감지하여 dist 폴더의 test_file.html을 삭제합니다. (아래 영상 참고)

파일 감시

index.njk에 코드를 추가하고 저장(Ctrl + s 또는 Command + s)하면 gulp빌드를 진행하고 변경된 내용을 브라우저에 실시간으로 반영합니다.