remove-defineproperty-webpack-plugin
Version:
remove defineproperty for IE8 compatible.
33 lines (26 loc) • 847 B
JavaScript
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
;
const NullDependency = require("webpack/lib/dependencies/NullDependency");
class HarmonyCompatibilityDependency extends NullDependency {
constructor(originModule) {
super();
this.originModule = originModule;
}
get type() {
return "harmony export header";
}
}
HarmonyCompatibilityDependency.Template = class HarmonyExportDependencyTemplate {
apply(dep, source) {
const usedExports = dep.originModule.usedExports;
if(usedExports && !Array.isArray(usedExports)) {
const exportName = dep.originModule.exportsArgument || "exports";
const content = `${exportName}["__esModule"] = true;\n`;
source.insert(-10, content);
}
}
};
module.exports = HarmonyCompatibilityDependency;