line_push/node_modules/webpack-external-import/webpack/chunkSplitting.js
2022-07-17 13:16:16 +08:00

104 lines
3.2 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.interleaveConfig = interleaveConfig;
exports.interleaveStyleConfig = interleaveStyleConfig;
exports.interleaveStyleJsConfig = interleaveStyleJsConfig;
exports.hasExternalizedModuleViaJson = void 0;
var _mem = _interopRequireDefault(require("mem"));
var _utils = require("./utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var interleaveMap = (0, _utils.getInterleaveConfig)();
var hasExternalizedModuleViaJson = (0, _mem["default"])(function (moduleResource) {
if (!moduleResource || !interleaveMap) return;
var interleaveKeys = Object.keys(interleaveMap || {});
if (interleaveKeys) {
var foundMatch = interleaveKeys.find(function (item) {
return moduleResource.includes(item);
});
return interleaveMap[foundMatch] || false;
}
});
exports.hasExternalizedModuleViaJson = hasExternalizedModuleViaJson;
function interleaveConfig(_ref) {
var testPath = _ref.testPath,
manifestName = _ref.manifestName;
return {
test: function test(module) {
// check if module has a resource path (not virtual modules)
if (module.resource) {
return module.resource.includes(testPath) && !!hasExternalizedModuleViaJson(module.resource, manifestName);
}
},
name: function name(module) {
// Check if module is listed in the interleave interface
var foundValue = hasExternalizedModuleViaJson(module.resource, manifestName);
if (foundValue) return foundValue;
},
// force module into a chunk regardless of how its used
enforce: true // might need for next.js
// reuseExistingChunk: false,
};
}
function interleaveStyleConfig(_ref2) {
var manifestName = _ref2.manifestName;
return {
test: function test(module) {
// check if module has a resource path (not virtual modules)
if (module.constructor.name === "CssModule") {
return !!hasExternalizedModuleViaJson(module.identifier(), manifestName);
}
},
// eslint-disable-next-line no-unused-vars
name: function name(module, chunks, cacheGroupKey) {
// Check if module is listed in the interleave interface
if (!module.resource) {
var foundValue = hasExternalizedModuleViaJson(module.resource || module.identifier(), manifestName);
if (foundValue) return "".concat(foundValue, "-style");
}
return "styles";
},
// force module into a chunk regardless of how its used
chunks: "all",
enforce: true,
reuseExistingChunk: false
};
}
function interleaveStyleJsConfig(_ref3) {
var manifestName = _ref3.manifestName;
return {
test: function test(module) {
if (module.request && module.request.match(/\\(style-loader|css-loader|sass-loader)$/)) {
return true;
}
if (module.constructor.name === "CssModule") {
return false;
}
if (module.resource && module.resource.match(/\.(scss|css)$/)) {
return true;
}
return false;
},
name: function name(module, chunks) {
return "".concat(manifestName, "-stylejs");
},
chunks: "all",
enforce: true,
reuseExistingChunk: false
};
}