webpack-clear-console
Version:
Webpack clear console plugin
48 lines (37 loc) • 1.82 kB
JavaScript
/**
* Created by yasem on 10.07.2016.
*/
var WebpackClearConsole = function () {
};
WebpackClearConsole.prototype.apply = function (compiler) {
var self = this;
compiler.plugin("emit", function (compilation, callback) {
compilation.chunks.forEach(function (chunk) {
// Explore each asset filename generated by the chunk and replace the console.* methods:
chunk.files.forEach(function (filename) {
// Get the asset source for each file generated by the chunk:
var source = compilation.assets[filename].source();
var consoleName=["console","window.console"];
var consoleType= ["log", "info", "warn", "error" ,"assert" ,"count" ,"clear", "group" ,
"groupEnd", "groupCollapsed" ,"trace" ,"debug", "dir" ,"dirxml", "profile", "profileEnd" ,
"time" ,"timeEnd" ,"timeStamp" ,"table","exception"];
//Console.log|debug|info|warn|error regexp
rConsole = new RegExp("(" + consoleName.join("|") + ")" + ".(?:" + consoleType.join("|") + ")\\s{0,}\\([^;]*\\)(?!\\s*[;,]?\\s*\\/\\*\\s*NotClearConsole\\s*\\*\\/)\\s{0,};?", "gi");
//Regexp replace null
source = source.replace(rConsole, function() {
return source.replaceWith || "";
});
compilation.assets[filename] = {
source: function () {
return source;
},
size: function () {
return source.length;
}
}
});
});
callback();
});
};
module.exports = WebpackClearConsole;