1234567891011121314151617181920212223242526272829303132333435 |
- const defaults = require('../config');
- const normalizeRule = require('./normalize-rule');
- const spriteLoaderPath = require.resolve('../loader');
- /**
- * @param {NormalModule} module
- * @return {boolean}
- */
- function isModuleShouldBeExtracted(module) {
- const { request, issuer, loaders } = module;
- let rule = null;
- if (Array.isArray(loaders) && loaders.length > 0) {
- // Find loader rule
- rule = loaders.map(normalizeRule).find(data => data.loader === spriteLoaderPath);
- }
- let issuerResource = null;
- if (issuer) {
- // webpack 1 compat
- issuerResource = typeof issuer === 'string' ? issuer : issuer.resource;
- }
- if (typeof request === 'string' && (!request.includes(spriteLoaderPath) || !rule)) {
- return false;
- }
- return !!(
- (issuer && defaults.EXTRACTABLE_MODULE_ISSUER_PATTERN.test(issuerResource)) ||
- (rule && rule.options && rule.options.extract)
- );
- }
- module.exports = isModuleShouldBeExtracted;
|