빌드 시 public 폴더 제거
요약
빌드 시 public
폴더를 제거하는 것은 장단점이 있습니다.
깨끗한 빌드 환경을 유지하고 정확한 배포를 보장한다는 점은 유용하지만, 빌드 시간이 증가하고 리소스 낭비가 발생할 수 있습니다. 따라서 프로젝트의 규모와 빌드 시간을 고려하여 적절히 선택하는 것이 중요합니다. 개인적으로는 웹 게시 전 로컬 서버로 작업할 때 스크립트를 통해 자동 제거하도록 설정하여 사용하고 있습니다.
장점
깨끗한 빌드 환경 유지
- 기존의 파일들이 남아 있어서 발생할 수 있는 문제를 방지합니다. 특히, 파일 삭제나 이름 변경이 있었을 경우, 이전 파일이 남아있어 혼란을 줄 수 있습니다.
- 빌드 과정에서 불필요한 파일이 포함될 가능성을 줄여 배포 파일 크기를 최소화합니다.
디버깅 용이
- 불필요한 파일이 남아 있어 발생할 수 있는 오류를 예방할 수 있습니다. 빌드 후에 예상하지 못한 파일이 남아 있지 않으므로 디버깅이 수월합니다.
정확한 배포
- 변경된 파일만 덮어쓰는 것이 아니라 모든 파일을 새로 생성하기 때문에, 배포 시 항상 최신 상태를 유지할 수 있습니다.
- 잘못된 캐시나 오래된 파일로 인한 배포 문제를 줄일 수 있습니다.
단점
빌드 시간 증가
public
폴더를 삭제하고 모든 파일을 다시 생성하기 때문에, 빌드 시간이 늘어날 수 있습니다.- 대규모 프로젝트의 경우 빌드 시간이 상당히 증가할 수 있습니다.
리소스 낭비
- 변경되지 않은 파일들도 다시 생성하기 때문에, 일부 리소스가 낭비될 수 있습니다.
- 네트워크 배포 시 변경되지 않은 파일도 재업로드되어 불필요한 트래픽이 발생할 수 있습니다.
배포 오류 위험
- 빌드 중 문제가 발생하여 중단되면,
public
폴더가 비어 있을 수 있어 배포 시 문제가 생길 수 있습니다. public
폴더가 삭제된 상태에서 빌드가 실패하면, 원래의 파일들이 모두 손실될 수 있습니다.
자동화
스크립트
@echo off
:: public 폴더 삭제
rmdir /s /q public
:: 휴고 빌드
hugo
NPM 스크립트
만약 Node.js 프로젝트로 관리 중이라면, package.json
파일의 스크립트 섹션에 아래와 같이 추가할 수 있습니다.
{
"scripts": {
"clean": "rimraf public",
"build": "hugo",
"prebuild": "npm run clean"
}
}
여기서 rimraf
패키지를 사용하여 cross-platform으로 public
폴더를 삭제할 수 있습니다. rimraf
패키지를 설치하려면 다음 명령어를 실행하세요.
npm install rimraf --save-dev
이제제 npm run build
명령어를 실행하면, public
폴더를 삭제한 후 휴고 빌드가 실행됩니다.