настройка webpack
This commit is contained in:
109
node_modules/webpack/lib/dependencies/HarmonyImportDependency.js
generated
vendored
Normal file
109
node_modules/webpack/lib/dependencies/HarmonyImportDependency.js
generated
vendored
Normal file
@ -0,0 +1,109 @@
|
||||
/*
|
||||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||
Author Tobias Koppers @sokra
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
const DependencyReference = require("./DependencyReference");
|
||||
const ModuleDependency = require("./ModuleDependency");
|
||||
const Template = require("../Template");
|
||||
|
||||
class HarmonyImportDependency extends ModuleDependency {
|
||||
constructor(request, originModule, sourceOrder, parserScope) {
|
||||
super(request);
|
||||
this.redirectedModule = undefined;
|
||||
this.originModule = originModule;
|
||||
this.sourceOrder = sourceOrder;
|
||||
this.parserScope = parserScope;
|
||||
}
|
||||
|
||||
get _module() {
|
||||
return this.redirectedModule || this.module;
|
||||
}
|
||||
|
||||
getReference() {
|
||||
if (!this._module) return null;
|
||||
return new DependencyReference(
|
||||
this._module,
|
||||
false,
|
||||
this.weak,
|
||||
this.sourceOrder
|
||||
);
|
||||
}
|
||||
|
||||
getImportVar() {
|
||||
let importVarMap = this.parserScope.importVarMap;
|
||||
if (!importVarMap) this.parserScope.importVarMap = importVarMap = new Map();
|
||||
let importVar = importVarMap.get(this._module);
|
||||
if (importVar) return importVar;
|
||||
importVar = `${Template.toIdentifier(
|
||||
`${this.userRequest}`
|
||||
)}__WEBPACK_IMPORTED_MODULE_${importVarMap.size}__`;
|
||||
importVarMap.set(this._module, importVar);
|
||||
return importVar;
|
||||
}
|
||||
|
||||
getImportStatement(update, runtime) {
|
||||
return runtime.importStatement({
|
||||
update,
|
||||
module: this._module,
|
||||
importVar: this.getImportVar(),
|
||||
request: this.request,
|
||||
originModule: this.originModule
|
||||
});
|
||||
}
|
||||
|
||||
updateHash(hash) {
|
||||
super.updateHash(hash);
|
||||
const importedModule = this._module;
|
||||
hash.update(
|
||||
(importedModule &&
|
||||
(!importedModule.buildMeta || importedModule.buildMeta.exportsType)) +
|
||||
""
|
||||
);
|
||||
hash.update((importedModule && importedModule.id) + "");
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
super.disconnect();
|
||||
this.redirectedModule = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = HarmonyImportDependency;
|
||||
|
||||
const importEmittedMap = new WeakMap();
|
||||
|
||||
HarmonyImportDependency.Template = class HarmonyImportDependencyTemplate {
|
||||
apply(dep, source, runtime) {
|
||||
// no-op
|
||||
}
|
||||
|
||||
getHarmonyInitOrder(dep) {
|
||||
return dep.sourceOrder;
|
||||
}
|
||||
|
||||
static isImportEmitted(dep, source) {
|
||||
let sourceInfo = importEmittedMap.get(source);
|
||||
if (!sourceInfo) return false;
|
||||
const key = dep._module || dep.request;
|
||||
return key && sourceInfo.emittedImports.get(key);
|
||||
}
|
||||
|
||||
harmonyInit(dep, source, runtime, dependencyTemplates) {
|
||||
let sourceInfo = importEmittedMap.get(source);
|
||||
if (!sourceInfo) {
|
||||
importEmittedMap.set(
|
||||
source,
|
||||
(sourceInfo = {
|
||||
emittedImports: new Map()
|
||||
})
|
||||
);
|
||||
}
|
||||
const key = dep._module || dep.request;
|
||||
if (key && sourceInfo.emittedImports.get(key)) return;
|
||||
sourceInfo.emittedImports.set(key, true);
|
||||
const content = dep.getImportStatement(false, runtime);
|
||||
source.insert(-1, content);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user