Skip to content

Commit 1a410df

Browse files
test: lazy css modules (#416)
1 parent 8695682 commit 1a410df

File tree

3 files changed

+94
-14
lines changed

3 files changed

+94
-14
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
@value v-red: red;
2+
@value v-green: green;
3+
@value v-blue: blue;
4+
5+
.module-red {
6+
color: v-red;
7+
}
8+
9+
.module-green {
10+
color: v-green;
11+
}
12+
13+
.module-blue {
14+
color: v-blue;
15+
}
16+
17+
.module-background {
18+
height: 1200px;
19+
background: url('./logo.png') center no-repeat;
20+
}

test/manual/src/index.js

Lines changed: 50 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,84 @@
22

33
import './style.css';
44
import './other-style.scss';
5-
import styles from './component.module.css';
5+
import component from './component.module.css';
66
import styleLazy from './style.lazy.css';
77
import otherStyleLazy from './other-style.lazy.scss';
8+
import componentLazy from './component.lazy.module.css';
89
import './style.link.css';
910
import './custom-square';
1011

1112
styleLazy.use();
1213
otherStyleLazy.use();
1314

14-
const articleElement = document.createElement('article');
15+
const articleElement1 = document.createElement('article');
1516
const h3Element = document.createElement('h3');
1617
const h3TextNode = document.createTextNode('CSS modules');
1718

1819
const divElement1 = document.createElement('div');
1920
const divElement1Content = document.createTextNode('Red');
2021

21-
divElement1.className = styles['module-red'];
22+
divElement1.className = component['module-red'];
2223
divElement1.appendChild(divElement1Content);
2324

2425
const divElement2 = document.createElement('div');
2526
const divElement2Content = document.createTextNode('Green');
2627

27-
divElement2.className = styles['module-green'];
28+
divElement2.className = component['module-green'];
2829
divElement2.appendChild(divElement2Content);
2930

3031
const divElement3 = document.createElement('div');
3132
const divElement3Content = document.createTextNode('Blue');
3233

33-
divElement3.className = styles['module-blue'];
34+
divElement3.className = component['module-blue'];
3435
divElement3.appendChild(divElement3Content);
3536

3637
const divElement4 = document.createElement('div');
3738

38-
divElement4.className = styles['module-background'];
39+
divElement4.className = component['module-background'];
3940

4041
h3Element.appendChild(h3TextNode);
41-
articleElement.appendChild(h3Element);
42-
articleElement.appendChild(divElement1);
43-
articleElement.appendChild(divElement2);
44-
articleElement.appendChild(divElement3);
45-
articleElement.appendChild(divElement4);
42+
articleElement1.appendChild(h3Element);
43+
articleElement1.appendChild(divElement1);
44+
articleElement1.appendChild(divElement2);
45+
articleElement1.appendChild(divElement3);
46+
articleElement1.appendChild(divElement4);
4647

47-
document.querySelectorAll('section')[0].appendChild(articleElement);
48+
document.querySelectorAll('section')[0].appendChild(articleElement1);
49+
50+
componentLazy.use();
51+
52+
const articleElement2 = document.createElement('article');
53+
const h3Element2 = document.createElement('h3');
54+
const h3TextNode2 = document.createTextNode('CSS modules');
55+
56+
const divElement5 = document.createElement('div');
57+
const divElement5Content = document.createTextNode('Red');
58+
59+
divElement5.className = componentLazy.locals['module-red'];
60+
divElement5.appendChild(divElement5Content);
61+
62+
const divElement6 = document.createElement('div');
63+
const divElement6Content = document.createTextNode('Green');
64+
65+
divElement6.className = componentLazy.locals['module-green'];
66+
divElement6.appendChild(divElement6Content);
67+
68+
const divElement7 = document.createElement('div');
69+
const divElement7Content = document.createTextNode('Blue');
70+
71+
divElement7.className = componentLazy.locals['module-blue'];
72+
divElement7.appendChild(divElement7Content);
73+
74+
const divElement8 = document.createElement('div');
75+
76+
divElement8.className = componentLazy.locals['module-background'];
77+
78+
h3Element2.appendChild(h3TextNode2);
79+
articleElement2.appendChild(h3Element2);
80+
articleElement2.appendChild(divElement5);
81+
articleElement2.appendChild(divElement6);
82+
articleElement2.appendChild(divElement7);
83+
articleElement2.appendChild(divElement8);
84+
85+
document.querySelectorAll('section')[1].appendChild(articleElement2);

test/manual/webpack.config.js

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@ module.exports = {
1414
rules: [
1515
{
1616
test: /\.css$/i,
17-
exclude: [/\.module\.css$/i, /\.lazy\.css$/i, /\.link\.css$/i],
17+
exclude: [
18+
/\.module\.css$/i,
19+
/\.lazy\.css$/i,
20+
/\.lazy\.module\.css$/i,
21+
/\.link\.css$/i,
22+
],
1823
use: [
1924
{
2025
loader: require.resolve('../../dist/index.js'),
@@ -29,7 +34,7 @@ module.exports = {
2934
},
3035
{
3136
test: /\.module\.css$/i,
32-
exclude: [/\.lazy\.css$/i, /\.link\.css$/i],
37+
exclude: [/\.lazy\.css$/i, /\.link\.css$/i, /\.lazy\.module\.css$/i],
3338
use: [
3439
{
3540
loader: require.resolve('../../dist/index.js'),
@@ -58,6 +63,23 @@ module.exports = {
5863
},
5964
],
6065
},
66+
{
67+
test: /\.lazy\.module\.css$/i,
68+
use: [
69+
{
70+
loader: require.resolve('../../dist/index.js'),
71+
options: { injectType: 'lazyStyleTag' },
72+
},
73+
{
74+
loader: 'css-loader',
75+
options: {
76+
sourceMap: ENABLE_SOURCE_MAP,
77+
modules: true,
78+
},
79+
},
80+
],
81+
},
82+
6183
{
6284
test: /\.link\.css$/i,
6385
use: [

0 commit comments

Comments
 (0)