웹팩으로 빌드 날짜와 시간 추가하는 다양한 방법 (js, css, html)

2023. 9. 18. 21:46· DevOps/Webpack
목차
  1. 1. BannerPlugin (js, css 파일 상단)
  2. 2. html-webpack-plugin (html 파일 상단)
  3. 3. copy-webpack-plugin (모든 파일 상단)
반응형

 

내가 원하는 파일, 원하는 설정대로 빌드하기 위해서 웹팩을 사용하는데 빌드 날짜와 시간을 추가해두면 어떤 파일이 가장 최근에 빌드된 것인지 확인하는데 유용하다. 그래서 자주 사용하는 플러그인을 통해 빌드된 파일 상단에 날짜와 시간을 추가해보려고한다.

 

1. BannerPlugin (js, css 파일 상단)

BannerPlugin은 webpack에 내장되어있는 플러그인으로 webpack을 설치했다면 따로 설치할 필요가 없다. 주로 javascript 번들 파일 맨 위에 주석을 추가하는 용도로 사용되는데 webpack.config.js 내의 plugins에 banner를 추가하여 원하는 날짜와 시간 형식을 추가해주면 된다. 

const webpack = require('webpack');

module.exports = {
    ...
    plugins: [
		new webpack.BannerPlugin({
			banner: `Build Date : ${new Date().toLocaleString()}`
		})
	],
    ...
}

이렇게 적용한 후 프로젝트를 빌드해보면 빌드된 js, css 파일 상단에 날짜와 시간이 추가된 것을 볼 수 있다.

/*! Build Date : 2023. 9. 18. 오후 2:03:32 */

 

2. html-webpack-plugin (html 파일 상단)

js, css 등의 파일 상단에 추가할 때는 BannerPlugin이라는 플러그인을 사용하여 추가했지만 Html 상단에도 동일하게 추가하고 싶다면 html-webpack-plugin 또는copy-webpack-plugin 을 사용하면 된다. html-webpack-plugin은 프로젝트에서 HTML 파일을 생성하고 웹팩 번들을 해당 HTML 파일에 자동으로 포함시켜주는 플러그인으로 먼저 html-webpack-plugin을 사용하여 추가해보려고 한다. 해당 플러그인은 설치가 필요하기 때문에 먼저 설치해주자.

 

npm install html-webpack-plugin --save-dev

 

설치가 끝났다면 먼저 html 파일 가장 상단에 아래 부분을 추가해줘야한다.

<!-- Build Date : <%= htmlWebpackPlugin.options.templateParameters.buildDate %> -->

 

그 후, webpack.config.js 파일 내에서 플러그인 설정을 통해 buildDate를 추가해준다.

const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
	...
	plugins: [
		new HtmlWebpackPlugin({
			template: './public/index.html', // HTML 템플릿 파일 경로
			inject: false,
			templateParameters: {
				buildDate: new Date().toLocaleString() // 날짜와 시간 추가
			},
			filename: 'build/index.html', // 빌드 후 저장 경로 및 파일 이름
			minify: {
				collapseWhitespace: false // 줄 바꿈 유지
			}
		})
	]
    ...
}

 

정상적으로 추가한 후, 빌드해보면 html 상단에도 똑같이 날짜와 시간이 추가된 것을 확인할 수 있다.

<!-- Build Date : 2023. 9. 18. 오후 2:03:37 -->
<!DOCTYPE html>
<html lang="ko">
...
</html>

 

3. copy-webpack-plugin (모든 파일 상단)

마지막으로 copy-webpack-plugin을 이용하여 파일 상단에 날짜와 시간을 추가하는 방법을 알아보려고 한다. copy-webpack-plugin은 파일을 복사하고 이동하는데 사용하는 플러그인으로 원하는 파일들을 뽑아서 빌드시키고 싶을 때 사용한다. 해당 플러그인 역시 설치 후 사용이 가능하기 때문에 먼저 설치해주자.

npm install copy-webpack-plugin --save-dev

 

설치했다면 webpack.config.js 파일에 플러그인을 추가해주면 된다. 이 때, transform을 이용해 파일 상단에 Build Date를 추가할 수 있다. 한가지 주의할 점은 파일 형식에 따라 주석의 형태가 다르기 때문에 buildDate에 각각의 파일 형태에 맞는 주석을 넣어주면 된다.

const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {
	...
	plugins: [
		new CopyWebpackPlugin({	
        	patterns: [
				{
					from: './public/index.html',
					to: './index.html',
					transform(content, path) {
						if (path.endsWith('index.html')) {
							const buildDate = `<!-- Build Date : ${new Date().toLocaleString()} -->\n\n`
							return buildDate + content
						}
						return content
					}
				}
			]
		})
	]
    ...
}

 

해당 플러그인들은 웹팩 설정이 어떻게 되어있느냐에 따라서 선택하여 사용하면 될 것 같다. 이렇게 설정해놓으면 빌드한 날짜와 시간이 명확하게 적혀있어 패치될 때마다 어떤 파일이 최신 파일인지 알 수 있어 편하다.

반응형
저작자표시 비영리 동일조건 (새창열림)
  1. 1. BannerPlugin (js, css 파일 상단)
  2. 2. html-webpack-plugin (html 파일 상단)
  3. 3. copy-webpack-plugin (모든 파일 상단)
'DevOps/Webpack' 카테고리의 다른 글
  • 웹팩 바벨로 리액트 개발환경 직접 구성하기 (ts+scss)
  • 웹팩으로 환경변수 세팅 및 동적변수 사용하기(Webpack env)
  • webpack5 file-loader 동작 안함 (웹팩5 파일로더 안됨)
도잎
도잎
프론트엔드 개발 성장기록
도잎
JDevelog
도잎
전체
오늘
어제
반응형
  • 분류 전체보기 (149)
    • Web dev (48)
      • React (22)
      • Vue (8)
      • Next.js (6)
      • Node.js (2)
      • Springboot (2)
    • App dev (2)
      • Flutter (2)
    • Language (33)
      • javascript (30)
      • typescript (2)
      • java (1)
    • StyleSeet (3)
      • CSS (3)
      • Sass (0)
    • Database (2)
      • PostgreSQL (1)
    • DevOps (11)
      • Webpack (4)
      • Linux (3)
      • Docker (2)
      • Tomcat (1)
    • 개발지식 (2)
      • Web (1)
    • 항해99(6기) (20)
    • UXUI (0)
    • 알고리즘 (25)
    • 유용정보 (2)

최근 글

hELLO · Designed By 정상우.v4.2.1
도잎
웹팩으로 빌드 날짜와 시간 추가하는 다양한 방법 (js, css, html)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.