flamebird
/
webpack.config.js
98 строк · 2.3 Кб
1const path = require('path')2const TerserJSPlugin = require('terser-webpack-plugin')3const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')4
5const srcFolder = process.env.SRC_DIR || path.resolve(__dirname, './client')6const destFolder = process.env.DEST_DIR || path.resolve(__dirname, './dist')7
8const isDev = process.env.NODE_ENV === 'development'9
10module.exports = {11devtool: isDev ? 'eval' : false,12mode: isDev ? 'development' : 'production',13target: 'web',14entry: {15'index.html': path.resolve(srcFolder, './index.html'),16global: path.resolve(srcFolder, './global.js'),17},18output: {19path: destFolder,20},21module: {22rules: [23{24test: /\.html$/,25loaders: [26'file-loader?name=[name].html',27'extract-loader',28{29loader: 'html-loader',30options: {31minimize: !isDev,32root: srcFolder,33attrs: ['img:src', 'link:href'],34},35},36],37},38{39test: /\.(png|jpg|gif)$/,40loaders: [41{42loader: 'url-loader',43options: {44limit: 8192,45fallback: 'responsive-loader',46quality: 75,47},48},49],50},51{52test: /\.js$/,53loaders: [54{55loader: 'babel-loader',56options: {57babelrc: true,58},59},60],61},62{63test: /\.css$/,64use: ['file-loader', 'extract-loader', 'css-loader'],65},66{67test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,68use: [69{70loader: 'file-loader',71options: {72name: '[name].[ext]',73outputPath: 'fonts/',74},75},76],77},78],79},80optimization: {81minimizer: isDev82? []83: [new TerserJSPlugin({}), new OptimizeCSSAssetsPlugin({})],84},85// plugins: [86// new HtmlWebpackPlugin({87// minify: {88// html5: true,89// removeComments: true,90// collapseWhitespace: true,91// minifyCSS: true,92// minifyJS: true,93// // minifyURLs: true94// },95// template: entryHtmlFileAbsolutePath,96// }),97// ],98}
99