forked from rtm516/ConvertJavaTextureToBedrock
-
Notifications
You must be signed in to change notification settings - Fork 10
/
webpack.config.js
117 lines (115 loc) · 3.74 KB
/
webpack.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const FaviconsWebpackPlugin = require("favicons-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const OfflinePlugin = require("offline-plugin");
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
const PACKAGE = require("./package");
const TerserJSPlugin = require("terser-webpack-plugin");
//const isDebug = (process.env.NODE_ENV === "development");
const isDebug = "production";
module.exports = {
devtool: false,
stats: {
children: false
},
entry: {
index: "./src/js/index.mjs"
},
mode: (isDebug ? "development" : "production"),
module: {
rules: [{
test: /\.less$/,
use: [MiniCssExtractPlugin.loader, "css-loader", "less-loader"]
},
{
test: /worker\.js$/,
loader: "worker-loader",
options: {
name: "[name].[contenthash].js"
}
}, {
test: /\.(jpe?g|png|gif|svg)$/i,
loader: 'file-loader',
options: {
name: '[name].[ext]'
}
},
]
},
optimization: {
minimizer: (isDebug ? [] : [new TerserJSPlugin({}), new OptimizeCSSAssetsPlugin()]),
},
output: {
filename: "[name].[contenthash].js",
path: __dirname + "/build",
libraryTarget: "umd",
globalObject: "this" // Fix worker
},
resolve: {
alias: {
fs: __dirname + "/src/js/browserify/fs",
jszip: __dirname + "/node_modules/jszip/lib/index.js",
path: __dirname + "/src/js/browserify/path"
}
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
minify: (isDebug ? false : {
collapseWhitespace: true,
removeComments: true,
removeRedundantAttributes: true,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
useShortDoctype: true
}),
template: "./src/html/index.html"
}),
new MiniCssExtractPlugin({
filename: "[name].[contenthash].css",
}),
new FaviconsWebpackPlugin({
devMode: "webapp",
logo: "./src/img/icon.svg",
mode: "webapp",
favicons: {
appDescription: PACKAGE.description,
appName: PACKAGE.productName,
appShortName: PACKAGE.productName,
appleStatusBarStyle: "black",
background: "#FFFFFF",
developerName: PACKAGE.author,
developerURL: null,
dir: null,
display: "standalone",
icons: {
android: true,
appleIcon: true,
favicons: true,
appleStartup: false,
coast: false,
firefox: false,
windows: false,
yandex: false
},
lang: null,
manifestRelativePaths: true,
orientation: "any",
path: "./",
start_url: "..",
theme_color: "#795548",
version: PACKAGE.version
},
prefix: "webapp",
publicPath: "./"
}),
...(!isDebug ? [new OfflinePlugin({
ServiceWorker: {
events: true
},
version: PACKAGE.version
})] : [])
],
target: "web"
};