@glitchr/media-query-plugin 1.5.5 → 1.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/plugin.js +17 -55
- package/src/store.js +3 -1
package/package.json
CHANGED
package/src/plugin.js
CHANGED
|
@@ -57,17 +57,11 @@ module.exports = class MediaQueryPlugin {
|
|
|
57
57
|
|
|
58
58
|
compiler.hooks.thisCompilation.tap(pluginName, (compilation) => {
|
|
59
59
|
|
|
60
|
-
const hasDeprecatedChunks = (compilation.chunks instanceof Set) === false; // webpack < 5
|
|
61
|
-
|
|
62
|
-
if (hasDeprecatedChunks) {
|
|
63
|
-
console.warn('\n\n[WARNING] media-query-plugin is going to drop webpack 4 support with the next major version so you should consider upgrading asap!\n\n');
|
|
64
|
-
}
|
|
65
|
-
|
|
66
60
|
const processAssets = (compilationAssets, cb) => {
|
|
67
61
|
|
|
68
62
|
const chunks = compilation.chunks;
|
|
69
63
|
const chunkIds = [...chunks].map(chunk => chunk.id);
|
|
70
|
-
const assets =
|
|
64
|
+
const assets = compilationAssets;
|
|
71
65
|
|
|
72
66
|
store.getMediaKeys().forEach(mediaKey => {
|
|
73
67
|
|
|
@@ -90,11 +84,7 @@ module.exports = class MediaQueryPlugin {
|
|
|
90
84
|
mediaChunk.id = mediaKey;
|
|
91
85
|
mediaChunk.ids = [mediaKey];
|
|
92
86
|
|
|
93
|
-
|
|
94
|
-
chunks.push(mediaChunk);
|
|
95
|
-
} else {
|
|
96
|
-
chunks.add(mediaChunk);
|
|
97
|
-
}
|
|
87
|
+
chunks.add(mediaChunk);
|
|
98
88
|
}
|
|
99
89
|
|
|
100
90
|
const chunk = [...chunks].filter(chunk => chunk.id === mediaKey)[0];
|
|
@@ -136,20 +126,13 @@ module.exports = class MediaQueryPlugin {
|
|
|
136
126
|
} else {
|
|
137
127
|
content = new ConcatSource(assets[file], content);
|
|
138
128
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
} else {
|
|
142
|
-
chunk.files.delete(file);
|
|
143
|
-
}
|
|
129
|
+
|
|
130
|
+
chunk.files.delete(file);
|
|
144
131
|
delete assets[file];
|
|
145
132
|
}
|
|
146
133
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
chunk.files.push(`${basename}.js`);
|
|
150
|
-
} else {
|
|
151
|
-
chunk.files.add(`${basename}.js`);
|
|
152
|
-
}
|
|
134
|
+
|
|
135
|
+
chunk.files.add(`${basename}.js`);
|
|
153
136
|
assets[`${basename}.js`] = content;
|
|
154
137
|
}
|
|
155
138
|
|
|
@@ -162,20 +145,12 @@ module.exports = class MediaQueryPlugin {
|
|
|
162
145
|
if (assets[file]) {
|
|
163
146
|
content = new ConcatSource(assets[file], content);
|
|
164
147
|
|
|
165
|
-
|
|
166
|
-
chunk.files.splice(chunk.files.indexOf(file), 1);
|
|
167
|
-
} else {
|
|
168
|
-
chunk.files.delete(file);
|
|
169
|
-
}
|
|
148
|
+
chunk.files.delete(file);
|
|
170
149
|
delete assets[file];
|
|
171
150
|
}
|
|
172
151
|
});
|
|
173
152
|
|
|
174
|
-
|
|
175
|
-
chunk.files.push(`${basename}.css`);
|
|
176
|
-
} else {
|
|
177
|
-
chunk.files.add(`${basename}.css`);
|
|
178
|
-
}
|
|
153
|
+
chunk.files.add(`${basename}.css`);
|
|
179
154
|
assets[`${basename}.css`] = content;
|
|
180
155
|
}
|
|
181
156
|
|
|
@@ -193,7 +168,7 @@ module.exports = class MediaQueryPlugin {
|
|
|
193
168
|
};
|
|
194
169
|
const sortedChunks = [...chunks].sort(chunksCompareFn);
|
|
195
170
|
|
|
196
|
-
compilation.chunks =
|
|
171
|
+
compilation.chunks = new Set(sortedChunks);
|
|
197
172
|
|
|
198
173
|
const assetsCompareFn = (a, b) => {
|
|
199
174
|
// take file extension out of sort
|
|
@@ -208,31 +183,18 @@ module.exports = class MediaQueryPlugin {
|
|
|
208
183
|
return 0;
|
|
209
184
|
};
|
|
210
185
|
const sortedAssets = Object.keys(assets).sort(assetsCompareFn).reduce((res, key) => (res[key] = assets[key], res), {});
|
|
211
|
-
|
|
212
|
-
if (hasDeprecatedChunks) {
|
|
213
|
-
compilation.assets = sortedAssets;
|
|
214
|
-
} else {
|
|
215
|
-
compilationAssets = sortedAssets;
|
|
216
|
-
}
|
|
186
|
+
compilationAssets = sortedAssets;
|
|
217
187
|
|
|
218
188
|
cb();
|
|
219
189
|
};
|
|
220
190
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
compilation.hooks.processAssets.tapAsync({
|
|
229
|
-
name: pluginName,
|
|
230
|
-
stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL
|
|
231
|
-
}, (assets, cb) => {
|
|
232
|
-
processAssets(assets, cb);
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
|
|
191
|
+
compilation.hooks.processAssets.tapAsync({
|
|
192
|
+
name: pluginName,
|
|
193
|
+
stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL
|
|
194
|
+
}, (assets, cb) => {
|
|
195
|
+
processAssets(assets, cb);
|
|
196
|
+
});
|
|
197
|
+
|
|
236
198
|
// consider html-webpack-plugin and provide extracted files
|
|
237
199
|
// which can be accessed in templates via htmlWebpackPlugin.files.extracted
|
|
238
200
|
// { css: [{file:'',query:''},{file:'',query:''}] }
|
package/src/store.js
CHANGED
|
@@ -19,8 +19,10 @@ class MediaQueryStore {
|
|
|
19
19
|
|
|
20
20
|
if (typeof this.media[key] !== 'object') {
|
|
21
21
|
this.media[key] = [];
|
|
22
|
+
this.media[key].push(data);
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
+
|
|
25
|
+
this.media[key] = this.media[key].map(media => media.filename == filename ? data : media);
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
getMedia(key) {
|