Skip to content

Commit a76e3b3

Browse files
committed
Mini Css Plugin
1 parent 808d4ff commit a76e3b3

File tree

3 files changed

+54
-47
lines changed

3 files changed

+54
-47
lines changed

client/webpack.client.base.config.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,16 @@ module.exports = {
5050
splitChunks: {
5151
chunks: 'all',
5252
cacheGroups: {
53-
vendor: {
54-
name: 'vendor',
53+
vendors: {
5554
test: /[\\/]node_modules[\\/]/,
5655
priority: -10,
57-
}
56+
chunks: 'all',
57+
},
58+
default: {
59+
minChunks: 2,
60+
priority: -20,
61+
reuseExistingChunk: true,
62+
},
5863
}
5964
}
6065
},

client/webpack.client.rails.build.config.js

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
// cd client && yarn run build:client
66
// Note that Foreman (Procfile.dev) has also been configured to take care of this.
77

8-
const ExtractTextPlugin = require('extract-text-webpack-plugin');
8+
// const ExtractTextPlugin = require('extract-text-webpack-plugin');
9+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
910
const merge = require('webpack-merge');
1011
const config = require('./webpack.client.base.config');
1112
const { resolve } = require('path');
@@ -50,47 +51,46 @@ module.exports = merge(config, {
5051
exclude: /node_modules/,
5152
},
5253
{
53-
test: /\.css$/,
54-
loader: ExtractTextPlugin.extract({
55-
fallback: 'style-loader',
56-
use: [
57-
{
58-
loader: 'css-loader',
59-
options: {
60-
minimize: true,
61-
modules: true,
62-
importLoaders: 1,
63-
localIdentName: '[name]__[local]__[hash:base64:5]',
64-
},
65-
},
66-
'postcss-loader',
67-
],
68-
}),
54+
test: /\.(scss|css)$/,
55+
use: [
56+
MiniCssExtractPlugin.loader,
57+
'css-loader',
58+
'resolve-url-loader?keepQuery',
59+
'svg-fill-loader/encodeSharp',
60+
'sass-loader',
61+
],
6962
},
7063
{
71-
test: /\.scss$/,
72-
loader: ExtractTextPlugin.extract({
73-
fallback: 'style-loader',
74-
use: [
75-
{
76-
loader: 'css-loader',
77-
options: {
78-
minimize: true,
79-
modules: true,
80-
importLoaders: 3,
81-
localIdentName: '[name]__[local]__[hash:base64:5]',
82-
},
83-
},
84-
'postcss-loader',
85-
'sass-loader',
86-
{
87-
loader: 'sass-resources-loader',
88-
options: {
89-
resources: './app/assets/styles/app-variables.scss'
90-
},
64+
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
65+
use: [
66+
{
67+
loader: 'url-loader?limit=10000&mimetype=image/svg+xml',
68+
},
69+
{
70+
loader: 'svg-fill-loader?selector=svg',
71+
},
72+
],
73+
},
74+
{
75+
test: /bootstrap-sass\/assets\/javascripts\//,
76+
loader: 'imports-loader?jQuery=jquery',
77+
},
78+
{
79+
test: /\.(scss|css)$/,
80+
use: [
81+
'style-loader',
82+
MiniCssExtractPlugin.loader,
83+
{
84+
loader: 'css-loader',
85+
options: {
86+
minimize: true,
87+
sourceMap: true
9188
}
92-
],
93-
}),
89+
},
90+
{
91+
loader: 'sass-loader'
92+
}
93+
]
9494
},
9595
{
9696
test: require.resolve('react'),
@@ -115,9 +115,9 @@ module.exports = merge(config, {
115115
},
116116

117117
plugins: [
118-
new ExtractTextPlugin({
119-
filename: '[name]-[hash].css',
120-
allChunks: true
121-
}),
118+
new MiniCssExtractPlugin({
119+
filename: '[name].css',
120+
chunkFilename: '[id].css'
121+
})
122122
],
123123
});

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@
4040
"url": "https://github.com/shakacode/react-webpack-rails-tutorial/issues"
4141
},
4242
"homepage": "https://github.com/shakacode/react-webpack-rails-tutorial",
43-
"dependencies": {},
43+
"dependencies": {
44+
"url-loader": "^1.1.2"
45+
},
4446
"devDependencies": {},
4547
"cacheDirectories": [
4648
"node_modules",

0 commit comments

Comments
 (0)