32 lines
1.2 KiB
JavaScript
32 lines
1.2 KiB
JavaScript
|
var log = require('../core/log');
|
||
|
'use strict';
|
||
|
var InjectByTag = (function () {
|
||
|
function InjectByTag(context) {
|
||
|
this.context = context;
|
||
|
}
|
||
|
InjectByTag.prototype.apply = function () {
|
||
|
var _this = this;
|
||
|
this.context.compiler.plugin('emit', function (compilation, cb) {
|
||
|
var _loop_1 = function() {
|
||
|
if (_this.context.options.injectByTagFileRegex.test(basename)) {
|
||
|
var replaced_1 = 0;
|
||
|
var asset = compilation.assets[basename];
|
||
|
var modFile_1 = asset.source().replace(/(\<\{version\}\>)/g, function () {
|
||
|
replaced_1++;
|
||
|
return _this.context.version;
|
||
|
});
|
||
|
asset.source = function () { return modFile_1; };
|
||
|
log.info("InjectByTag : match : " + basename + " : replaced : " + replaced_1);
|
||
|
}
|
||
|
};
|
||
|
for (var basename in compilation.assets) {
|
||
|
_loop_1();
|
||
|
}
|
||
|
cb();
|
||
|
});
|
||
|
return new Promise(function (resolve, reject) { resolve(); });
|
||
|
};
|
||
|
return InjectByTag;
|
||
|
}());
|
||
|
module.exports = InjectByTag;
|