@@ -12,16 +12,18 @@ const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
1212
1313const ASSET_PATH = process . env . ASSET_PATH || '/'
1414
15-
1615// Files
1716const utils = require ( './utils' )
1817
1918// Configuration
20- module . exports = env => {
19+ module . exports = ( env ) => {
20+
21+ // Get default mode from env
22+ const MODE = env . mode || 'production' ;
2123
2224 return {
25+ mode : MODE ,
2326 target : 'web' ,
24-
2527 context : path . join ( __dirname , '../src' ) ,
2628 entry : {
2729 app : path . join ( __dirname , '../src/app.js' ) ,
@@ -63,7 +65,7 @@ module.exports = env => {
6365 {
6466 test : / \. c s s $ / ,
6567 use : [
66- env === 'development' ? 'style-loader' : MiniCssExtractPlugin . loader ,
68+ utils . isDevMode ( MODE ) ? 'style-loader' : MiniCssExtractPlugin . loader ,
6769 {
6870 loader : 'css-loader' ,
6971 options : {
@@ -76,7 +78,7 @@ module.exports = env => {
7678 {
7779 test : / \. s c s s $ / ,
7880 use : [
79- env === 'development' ? 'style-loader' : MiniCssExtractPlugin . loader , // creates style nodes from JS strings
81+ utils . isDevMode ( MODE ) ? 'style-loader' : MiniCssExtractPlugin . loader , // creates style nodes from JS strings
8082 { loader : 'css-loader' , options : { importLoaders : 1 , sourceMap : true } } , // translates CSS into CommonJS
8183 'postcss-loader' ,
8284 'sass-loader' , // compiles Sass to CSS
@@ -92,28 +94,25 @@ module.exports = env => {
9294 } ,
9395 {
9496 test : / \. ( p n g | j p e ? g | g i f | s v g | i c o ) ( \? .* ) ? $ / ,
95- loader : 'url-loader' ,
96- options : {
97- limit : 3000 ,
98- name : 'assets/images/[name].[contenthash:7].[ext]'
97+ type : 'asset/resource' ,
98+ generator : {
99+ filename : 'assets/images/[name].[contenthash:7][ext]'
99100 }
100101 } ,
101102 {
102103 test : / \. ( w o f f 2 ? | e o t | t t f | o t f ) ( \? .* ) ? $ / ,
103- loader : 'url-loader' ,
104- options : {
105- limit : 5000 ,
106- name : 'assets/fonts/[name].[contenthash:7].[ext]'
104+ type : 'asset/resource' ,
105+ generator : {
106+ filename : 'assets/fonts/[name].[contenthash:7][ext]'
107107 }
108108 } ,
109- /* {
109+ /*{
110110 test: /\.(mp4)(\?.*)?$/,
111- loader: 'url-loader',
112- options: {
113- limit: 10000,
114- name: 'assets/videos/[name].[contenthash:7].[ext]'
115- }
116- } */
111+ type: 'asset/resource',
112+ generator: {
113+ filename: 'assets/videos/[name].[contenthash:7][ext]'
114+ },
115+ }*/
117116 ]
118117 } ,
119118 experiments : {
@@ -162,16 +161,17 @@ module.exports = env => {
162161 Pages
163162 */
164163
165- // Desktop page
164+ // Homepage
166165 new HtmlWebpackPlugin ( {
167- minify : ! env === 'development' ,
166+ minify : ! utils . isDevMode ( MODE ) ,
168167 filename : 'index.html' ,
169168 template : 'views/index.pug' ,
170169 inject : 'body' ,
171170 } ) ,
172171
173- ...utils . pages ( env ) , // env, public path, parent folder
174- ...utils . pages ( env , 'blog' ) ,
172+ // Other pages
173+ ...utils . pages ( MODE ) , // mode
174+ ...utils . pages ( MODE , 'blog' ) , // mode, folder name under pages
175175
176176 new webpack . ProvidePlugin ( {
177177 $ : 'jquery' ,
0 commit comments