1 |
|
2 | const RuleSet = require('webpack/lib/RuleSet');
|
3 |
|
4 | const flattenAndExtractUse = rules => rules.reduce((pre, rule) => {
|
5 | if ('rules' in rule || 'oneOf' in rule) {
|
6 | return pre.concat(flattenAndExtractUse(rule.rules || rule.oneOf));
|
7 | }
|
8 |
|
9 | return pre.concat(rule.use || []);
|
10 | }, []);
|
11 |
|
12 | module.exports = (compiler) => {
|
13 | const rawRules = compiler.options.module.rules;
|
14 | const { rules } = new RuleSet(rawRules);
|
15 | const rule = flattenAndExtractUse(rules)
|
16 | .find((item) => {
|
17 | return /svg-sprite-loader/.test(item.loader);
|
18 | }) || {};
|
19 |
|
20 | return rule.options || {};
|
21 | };
|