Skip to content
This repository was archived by the owner on Feb 1, 2020. It is now read-only.

Commit 30009a9

Browse files
committed
added an option to specify 'only' as a selector for files to purge
1 parent 9eaa9ff commit 30009a9

File tree

3 files changed

+30
-7
lines changed

3 files changed

+30
-7
lines changed

lib/purgecss-webpack-plugin.es.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -166,13 +166,20 @@ var PurgecssPlugin = function () {
166166
});
167167

168168
compilation.plugin('additional-assets', function (cb) {
169+
var assetsFromCompilation = assets(compilation.assets, ['.css']);
169170
// Go through chunks and purge as configured
170171
compilation.chunks.forEach(function (chunk) {
171172
var chunkName = chunk.name,
172173
files$$1 = chunk.files;
173174

174-
var assetsToPurge = assets(compilation.assets, ['.css']).filter(function (asset) {
175-
return files$$1.indexOf(asset.name) >= 0;
175+
var assetsToPurge = assetsFromCompilation.filter(function (asset) {
176+
if (_this.options.only) {
177+
return [].concat(_this.options.only).some(function (only) {
178+
return asset.name.indexOf(only) >= 0;
179+
});
180+
} else {
181+
return files$$1.indexOf(asset.name) >= 0;
182+
}
176183
});
177184

178185
assetsToPurge.forEach(function (_ref) {

lib/purgecss-webpack-plugin.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -170,13 +170,20 @@ var PurgecssPlugin = function () {
170170
});
171171

172172
compilation.plugin('additional-assets', function (cb) {
173+
var assetsFromCompilation = assets(compilation.assets, ['.css']);
173174
// Go through chunks and purge as configured
174175
compilation.chunks.forEach(function (chunk) {
175176
var chunkName = chunk.name,
176177
files$$1 = chunk.files;
177178

178-
var assetsToPurge = assets(compilation.assets, ['.css']).filter(function (asset) {
179-
return files$$1.indexOf(asset.name) >= 0;
179+
var assetsToPurge = assetsFromCompilation.filter(function (asset) {
180+
if (_this.options.only) {
181+
return [].concat(_this.options.only).some(function (only) {
182+
return asset.name.indexOf(only) >= 0;
183+
});
184+
} else {
185+
return files$$1.indexOf(asset.name) >= 0;
186+
}
180187
});
181188

182189
assetsToPurge.forEach(function (_ref) {

src/index.js

+12-3
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,21 @@ export default class PurgecssPlugin {
1818
})
1919

2020
compilation.plugin('additional-assets', cb => {
21+
const assetsFromCompilation = search.assets(compilation.assets, [
22+
'.css'
23+
])
2124
// Go through chunks and purge as configured
2225
compilation.chunks.forEach(chunk => {
2326
const { name: chunkName, files } = chunk
24-
const assetsToPurge = search
25-
.assets(compilation.assets, ['.css'])
26-
.filter(asset => files.indexOf(asset.name) >= 0)
27+
const assetsToPurge = assetsFromCompilation.filter(asset => {
28+
if (this.options.only) {
29+
return []
30+
.concat(this.options.only)
31+
.some(only => asset.name.indexOf(only) >= 0)
32+
} else {
33+
return files.indexOf(asset.name) >= 0
34+
}
35+
})
2736

2837
assetsToPurge.forEach(({ name, asset }) => {
2938
const filesToSearch = parse

0 commit comments

Comments
 (0)