-
Notifications
You must be signed in to change notification settings - Fork 4
/
index.js
29 lines (24 loc) · 955 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var ConcatSource = require('webpack-sources').ConcatSource;
var corejsBuilder = require('core-js-builder');
function CoreJsPlugin(options) {
this.options = options || {};
}
CoreJsPlugin.prototype.apply = function CoreJsPluginApply (compiler) {
var self = this;
compiler.plugin('compilation', function(compilation) {
compilation.plugin('optimize-chunk-assets', function(chunks, callback) {
chunks.forEach(function(chunk) {
if (!chunk.isInitial()) return;
corejsBuilder(self.options)
.then(function(bundledCode) {
chunk.files.forEach(function(file) {
var src = new ConcatSource('/* core-js */\n', bundledCode, compilation.assets[file]);
compilation.assets[file] = src
});
});// end then
});// end for each
callback();
});// end optimize-chunk-assets
});// end compilation
};// end apply
module.exports = CoreJsPlugin;