아이오닉 캐시 버스팅 설정

html-webpack-plugin 설치

아이오닉 캐시 버스팅 설정을 위해 html-webpack-plugin 설치를 합니다.

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

웹팩 설정파일 추가

./package.json 에서 config 설정을 추가합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"name": "ps3-ionic",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "http://ionicframework.com/",
"private": true,

...

"config": {
"ionic_webpack": "./config/webpack.config.js" // 추가
}
}

웹팩 설정

./config/webpack.config.js
HtmlWebpackPlugin template 경로 설정을 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
...

var HtmlWebpackPlugin = require('html-webpack-plugin'); // 추가

...

plugins: [
ionicWebpackFactory.getIonicEnvironmentPlugin(),
ionicWebpackFactory.getCommonChunksPlugin(),
new ModuleConcatPlugin(),
new PurifyPlugin(),
new HtmlWebpackPlugin({
title: 'Your Title',
template: './src/index_cache_busting.html', // 추가
filename: '../index.html',
hash:true,
}),
]

...

index_cash_busting.html 파일 생성

./src/index_cash_busting.html 파일 생성 후 아래 내용을 추가합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<title><%= htmlWebpackPlugin.options.title %></title>
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
<link rel="manifest" href="manifest.json">
<meta name="theme-color" content="#4e8ef7">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<script src="cordova.js"></script>
<link href="build/main.css" rel="stylesheet">
</head>
<body>
<ion-app></ion-app>
<script src="build/polyfills.js"></script>
</body>
</html>

Resource