fix: cache

This commit is contained in:
alexander.akait 2023-04-25 16:13:39 +03:00
parent da28801114
commit b7997e4271
3 changed files with 50 additions and 7 deletions

View File

@ -6,6 +6,7 @@
"use strict";
const NormalModule = require("./NormalModule");
const makeSerializable = require("./util/makeSerializable");
/** @typedef {import("./RequestShortener")} RequestShortener */
/** @typedef {import("./Module")} Module */
@ -49,9 +50,9 @@ class CssModule extends NormalModule {
const readableIdentifier = super.readableIdentifier(requestShortener);
return `css ${readableIdentifier}${
this.csslayer ? ` (layer ${this.csslayer})` : ""
}${this.supports ? ` (supports ${this.supports})` : ""}${
this.media ? ` (media ${this.media})` : ""
this.csslayer ? ` (layer ${this.csslayer || ""})` : ""
}${this.supports ? ` (supports ${this.supports || ""})` : ""}${
this.media ? ` (media ${this.media || ""})` : ""
}`;
}
@ -70,6 +71,14 @@ class CssModule extends NormalModule {
this.media = m.media;
}
serialize(context) {
const { write } = context;
write(this.csslayer);
write(this.supports);
write(this.media);
super.serialize(context);
}
static deserialize(context) {
const obj = new CssModule({
// will be deserialized by Module
@ -102,4 +111,6 @@ class CssModule extends NormalModule {
}
}
makeSerializable(CssModule, "webpack/lib/CssModule");
module.exports = CssModule;

View File

@ -41,13 +41,28 @@ class CssImportDependency extends ModuleDependency {
}
get category() {
return "css-import";
return "style";
}
/**
* @returns {string | null} an identifier to merge equal requests
*/
getResourceIdentifier() {
return `context${this._context || ""}|module${this.request}|layer${
this.layer
}|supports${this.supports}|media${this.media}`;
let str = `context${this._context || ""}|module${this.request}`;
if (this.layer) {
str += `|layer${this.layer}`;
}
if (this.supports) {
str += `|supports${this.supports}`;
}
if (this.media) {
str += `|media${this.media}`;
}
return str;
}
/**
@ -57,6 +72,22 @@ class CssImportDependency extends ModuleDependency {
createIgnoredModule(context) {
return null;
}
serialize(context) {
const { write } = context;
write(this.layer);
write(this.supports);
write(this.media);
super.serialize(context);
}
deserialize(context) {
const { read } = context;
this.layer = read();
this.supports = read();
this.media = read();
super.deserialize(context);
}
}
CssImportDependency.Template = class CssImportDependencyTemplate extends (

View File

@ -189,6 +189,7 @@ module.exports = {
ModuleParseError: () => require("../ModuleParseError"),
ModuleWarning: () => require("../ModuleWarning"),
NormalModule: () => require("../NormalModule"),
CssModule: () => require("../CssModule"),
RawDataUrlModule: () => require("../asset/RawDataUrlModule"),
RawModule: () => require("../RawModule"),
"sharing/ConsumeSharedModule": () =>