WXL
4 天以前 3bd962a6d7f61239c020e2dbbeb7341e5b842dd1
node_modules/webpack/lib/dependencies/CssIcssImportDependency.js
@@ -13,6 +13,7 @@
/** @typedef {import("../Dependency")} Dependency */
/** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
/** @typedef {import("../Module")} Module */
/** @typedef {import("../CssModule")} CssModule */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
@@ -20,31 +21,28 @@
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
/** @typedef {import("../Dependency").ReferencedExports} ReferencedExports */
/** @typedef {import("../../declarations/WebpackOptions").CssGeneratorExportsConvention} CssGeneratorExportsConvention */
/** @typedef {import("./CssIcssExportDependency").ExportMode} ExportMode */
/** @typedef {import("./CssIcssExportDependency").ExportType} ExportType */
class CssIcssImportDependency extends CssImportDependency {
   /**
    * Example of dependency:
    *
    * :import('./style.css') { IMPORTED_NAME: v-primary }
    * :import('./style.css') { value: name }
    * @param {string} request request request path which needs resolving
    * @param {Range} range the range of dependency
    * @param {"local" | "global"} mode mode of the parsed CSS
    * @param {string} name importName name
    * @param {string} importName import name (`name` from example)
    * @param {string} localName local name (`value` from example)
    */
   constructor(request, range, mode, name) {
   constructor(request, range, mode, importName, localName) {
      super(request, range, mode);
      this.name = name;
      this.importName = importName;
      this.localName = localName;
   }
   get type() {
      return "css :import";
   }
   /**
    * @returns {string | null} an identifier to merge equal requests
    */
   getResourceIdentifier() {
      return `${super.getResourceIdentifier()}|mode${this.mode}|name${this.name}`;
   }
   /**
@@ -56,14 +54,14 @@
   getReferencedExports(moduleGraph, runtime) {
      return [
         {
            name: [this.name],
            name: [this.importName],
            canMangle: true
         }
      ];
   }
   /**
    * Returns warnings
    * Returns warnings.
    * @param {ModuleGraph} moduleGraph module graph
    * @returns {WebpackError[] | null | undefined} warnings
    */
@@ -72,10 +70,10 @@
      if (
         module &&
         !moduleGraph.getExportsInfo(module).isExportProvided(this.name)
         !moduleGraph.getExportsInfo(module).isExportProvided(this.importName)
      ) {
         const error = new WebpackError(
            `Referenced name "${this.name}" in "${this.userRequest}" not found`
            `Referenced name "${this.importName}" in "${this.userRequest}" not found`
         );
         error.module = module;
@@ -86,20 +84,24 @@
   }
   /**
    * Serializes this instance into the provided serializer context.
    * @param {ObjectSerializerContext} context context
    */
   serialize(context) {
      const { write } = context;
      write(this.name);
      write(this.importName);
      write(this.localName);
      super.serialize(context);
   }
   /**
    * Restores this instance from the provided deserializer context.
    * @param {ObjectDeserializerContext} context context
    */
   deserialize(context) {
      const { read } = context;
      this.name = read();
      this.importName = read();
      this.localName = read();
      super.deserialize(context);
   }
}
@@ -108,13 +110,14 @@
   CssImportDependency.Template
) {
   /**
    * Applies the plugin by registering its hooks on the compiler.
    * @param {Dependency} dependency the dependency for which the template should be applied
    * @param {ReplaceSource} source the current replace source which can be modified
    * @param {DependencyTemplateContext} templateContext the context object
    * @returns {void}
    */
   apply(dependency, source, templateContext) {
      // We remove everything in CSS parser
      // Nothing
   }
};