Skip to content

Commit 64f8309

Browse files
jimvandervoortNMFR
authored andcommitted
Handle query string in assetName (NMFR#82)
Thx for the help
1 parent ff3d469 commit 64f8309

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/index.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
const url = require('url');
2+
13
const LastCallWebpackPlugin = require('last-call-webpack-plugin');
24

35
class OptimizeCssAssetsWebpackPlugin extends LastCallWebpackPlugin {
@@ -6,7 +8,7 @@ class OptimizeCssAssetsWebpackPlugin extends LastCallWebpackPlugin {
68
assetProcessors: [
79
{
810
phase: LastCallWebpackPlugin.PHASES.OPTIMIZE_CHUNK_ASSETS,
9-
regExp: (options && options.assetNameRegExp) || /\.css$/g,
11+
regExp: (options && options.assetNameRegExp) || /\.css(\?.*)?$/i,
1012
processor: (assetName, asset, assets) =>
1113
this.processCss(assetName, asset, assets),
1214
}
@@ -15,7 +17,7 @@ class OptimizeCssAssetsWebpackPlugin extends LastCallWebpackPlugin {
1517
});
1618

1719
this.options.assetNameRegExp = !options || !options.assetNameRegExp ?
18-
/\.css$/g :
20+
/\.css(\?.*)?$/i :
1921
options.assetNameRegExp;
2022
this.options.cssProcessor = !options || !options.cssProcessor ?
2123
require('cssnano') :
@@ -33,6 +35,12 @@ class OptimizeCssAssetsWebpackPlugin extends LastCallWebpackPlugin {
3335
}
3436

3537
processCss(assetName, asset, assets) {
38+
const parse = url.parse(assetName);
39+
const assetInfo = {
40+
path: parse.pathname,
41+
query: parse.query ? `?${parse.query}` : '',
42+
};
43+
3644
const css = asset.sourceAndMap ? asset.sourceAndMap() : { source: asset.source() };
3745
const processOptions = Object.assign(
3846
{ from: assetName, to: assetName },
@@ -43,7 +51,7 @@ class OptimizeCssAssetsWebpackPlugin extends LastCallWebpackPlugin {
4351
try {
4452
let map = css.map;
4553
if (!map) {
46-
const mapJson = assets.getAsset(assetName + '.map');
54+
const mapJson = assets.getAsset(`${assetInfo.path}.map`);
4755
if (mapJson) {
4856
map = JSON.parse(mapJson);
4957
}
@@ -65,7 +73,7 @@ class OptimizeCssAssetsWebpackPlugin extends LastCallWebpackPlugin {
6573
.cssProcessor.process(css.source, processOptions, this.options.cssProcessorPluginOptions)
6674
.then(r => {
6775
if (processOptions.map && r.map && r.map.toString) {
68-
assets.setAsset(assetName + '.map', r.map.toString());
76+
assets.setAsset(`${assetInfo.path}.map${assetInfo.query}`, r.map.toString());
6977
}
7078
return r.css;
7179
});

0 commit comments

Comments
 (0)