65c80d4fc5d1cd87351f85580a568fcb1d9eb63e8f65f4a4140107a6f7a232f4ecedba088a0bafb5b029f2df21333fd3d1a2f709d70eb16676f2541f5458ce 677 B

12345678910111213141516171819202122
  1. /* eslint-disable import/no-unresolved */
  2. // eslint-disable-next-line import/no-extraneous-dependencies
  3. const RuleSet = require('webpack/lib/RuleSet');
  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. return pre.concat(rule.use || []);
  9. }, []);
  10. module.exports = (compiler) => {
  11. const rawRules = compiler.options.module.rules;
  12. const { rules } = new RuleSet(rawRules);
  13. const rule = flattenAndExtractUse(rules)
  14. .find((item) => {
  15. return /svg-sprite-loader/.test(item.loader);
  16. }) || {};
  17. return rule.options || {};
  18. };