Skip to content

Commit 7cd0d0a

Browse files
perf(webpack): improve css/sass/scss compilations, remove unused entrypoints
1 parent a809875 commit 7cd0d0a

File tree

4 files changed

+19
-36
lines changed

4 files changed

+19
-36
lines changed

client/app/__test__/setup.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ import './mocks/matchMedia';
1414

1515
Enzyme.configure({ adapter: new Adapter() });
1616

17-
require('@babel/polyfill');
18-
1917
const timeZone = 'Asia/Singapore';
2018
const intlCache = createIntlCache();
2119
const intl = createIntl({ locale: 'en', timeZone }, intlCache);

client/css-includes.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[
2+
"app/theme/index.css",
3+
"node_modules/rc-slider/assets",
4+
"node_modules/react-image-crop/dist/ReactCrop.css",
5+
"node_modules/react-tooltip/dist/react-tooltip.min.css",
6+
"app/lib/components/core/fields/CKEditor.css",
7+
"app/lib/components/core/fields/AceEditor.css"
8+
]

client/postcss.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module.exports = {
22
plugins: {
3+
'tailwindcss/nesting': {},
34
tailwindcss: {},
45
autoprefixer: {},
56
...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {}),

client/webpack.common.js

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,12 @@ const HtmlWebpackPlugin = require('html-webpack-plugin');
1111
const FaviconsWebpackPlugin = require('favicons-webpack-plugin');
1212

1313
const packageJSON = require('./package.json');
14+
const cssIncludes = require('./css-includes.json');
1415

1516
const ENV_DIR = process.env.BABEL_ENV === 'e2e-test' ? './.env.test' : './.env';
1617

1718
module.exports = {
18-
entry: {
19-
coursemology: [
20-
'@babel/polyfill',
21-
'jquery',
22-
'./app/index',
23-
'./app/lib/moment-timezone',
24-
],
25-
},
19+
entry: './app/index.tsx',
2620
output: {
2721
path: join(__dirname, 'build'),
2822
publicPath: '/',
@@ -78,31 +72,12 @@ module.exports = {
7872
rules: [
7973
{
8074
test: /\.css$/,
81-
use: ['style-loader', 'css-loader'],
82-
include: [
83-
resolve(__dirname, 'node_modules/rc-slider/assets'),
84-
resolve(
85-
__dirname,
86-
'node_modules/react-image-crop/dist/ReactCrop.css',
87-
),
88-
resolve(
89-
__dirname,
90-
'node_modules/react-tooltip/dist/react-tooltip.min.css',
91-
),
92-
resolve(__dirname, 'app/lib/components/core/fields/CKEditor.css'),
93-
resolve(__dirname, 'app/lib/components/core/fields/AceEditor.css'),
75+
use: [
76+
'style-loader',
77+
{ loader: 'css-loader', options: { sourceMap: false } },
78+
'postcss-loader',
9479
],
95-
},
96-
{
97-
test: /\.css$/,
98-
use: ['style-loader', 'css-loader', 'postcss-loader'],
99-
include: [resolve(__dirname, 'app/theme/index.css')],
100-
},
101-
{
102-
test: /\.scss$/,
103-
use: ['style-loader', 'css-loader', 'sass-loader'],
104-
include: [resolve(__dirname, 'app/lib/styles')],
105-
exclude: /node_modules/,
80+
include: cssIncludes.map((path) => resolve(__dirname, path)),
10681
},
10782
{
10883
test: /\.scss$/,
@@ -111,15 +86,16 @@ module.exports = {
11186
{
11287
loader: 'css-loader',
11388
options: {
114-
importLoaders: 1,
89+
sourceMap: false,
11590
modules: {
11691
localIdentName: '[path]___[name]__[local]___[hash:base64:5]',
11792
},
11893
},
11994
},
95+
'postcss-loader',
12096
'sass-loader',
12197
],
122-
exclude: [/node_modules/, resolve(__dirname, 'app/lib/styles')],
98+
exclude: [/node_modules/],
12399
},
124100
{
125101
test: /\.(csv|png|svg)$/i,

0 commit comments

Comments
 (0)