@regru/webpack-babel-multi-target-plugin
Version:
A Webpack plugin that works with Babel to allow deployment of ES2015 builds targeted to modern browsers, with an ES5 fallback for legacy browsers.
37 lines • 1.77 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const babel_target_single_entry_dependency_1 = require("./babel.target.single.entry.dependency");
class BabelTargetEntryPlugin {
constructor(targets, context, name) {
this.targets = targets;
this.context = context;
this.name = name;
}
apply(compiler) {
compiler.hooks.compilation.tap(this.constructor.name, (compilation, { normalModuleFactory }) => {
compilation.dependencyFactories.set(babel_target_single_entry_dependency_1.BabelTargetSingleEntryDependency, normalModuleFactory);
});
}
addEntry(compilation, dep, name) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
compilation.addEntry(this.context, dep, dep.name || name, (err) => {
if (err) {
return reject(err);
}
resolve();
});
});
});
}
}
exports.BabelTargetEntryPlugin = BabelTargetEntryPlugin;
//# sourceMappingURL=babel.target.entry.plugin.js.map