Web Server - by. UXKM

요약 설명

gulp-webserver는 편리하게 웹 서버를 실행하기 위한 Gulp의 플러그인입니다.

gulp.watch로 파일의 변경, 업데이트를 감지하여 브라우저에 실시간으로 반영(이하 'Live Reload') 하는 시스템을 세팅하고 Live Reload가 정상적으로 작동하는지 확인하기 위해 gulp-webserver 세팅이 선행되어야 합니다.

5.1.1. gulp-webserver 설치

터미널에서 아래 명령을 실행하여 gulp-webserver를 설치합니다.

5.1.2. gulpfile.babel.js 세팅

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

gulp-webserver의 상세한 옵션은 npm gulp-webserver#options 에서 확인 가능합니다.

5.1.3. gulp dev 실행

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

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

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

Gulp 실행 후 두 가지의 변경 사항을 확인할 수 있습니다.

  1. 기존까지는 build series 까지만 실행됐기 때문에 dev가 종료되면 Gulp도 종료되어 명령어를 입력할 수 있는 상태로 돌아갔지만, 지금은 build series 실행 후 live series에서 webserver가 실행되고 dev는 종료되지만 webserver 동작을 위해 gulp 프로세스는 유지됩니다.
  2. Gulp의 작업 내용에 webserver 시작과 종료(빨간색 박스)가 추가되고, 아래처럼 localhost:8000 주소로 브라우저가 열립니다.

gulp-webserver로 브라우저가 열린 화면

아직 css task, image task를 세팅하지 않았기 때문에 css가 적용되지 않고 image가 보이지 않는 것이 정상입니다.
또한 gulp dev를 실행한 상태에서 njk 파일을 업데이트하더라도 해당 파일에 대한 빌드 과정을 거치지 않았기 때문에 브라우저를 새로고침 해도 업데이트 내용이 반영되지 않습니다.

5.1.4. gulp 프로세스 종료

[gulp dev 실행]에서 확인했듯이 현재 시점에서 gulp dev를 실행하면 프로세스가 유지되고 커맨드를 입력할 수 없습니다.
이때, Gulp 프로세스를 종료하려면 터미널에서 control + C 입력 후 y를 입력해야 합니다.

gulp dev 프로세스 종료

Gulp가 종료되고 webserver도 종료되었기 때문에 브라우저에서는 '사이트에 연결할 수 없음' 메시지가 표시됩니다.

gulp 종료 후 브라우저 화면