minify-cshtml-webpack-plugin
Version:
Minify CSHTML Razor Views
23 lines (21 loc) • 1.16 kB
JavaScript
function minify(content) {
content = content.trim();
content = content.replace(/<!--[\s\S]*?-->/g, ''); //Remove HTML comments
content = content.replace(/@\*[\s\S]*?\*@/g, ''); //Remove Razor comments
content = content.replace(/(\/\*([\s\S]*?)\*\/)|(\/\/(\s.*))/gm, ''); //Remove JS comments
content = content.replace(/>[\s]*\<(?!(\/pre))/gi, '><'); //Remove whitespace
content = content.replace(/>[\s]*\</gi, '><'); //Remove whitespace
content = content.split(/\r\n|\n|\r/); //Remove line breaks except lines starting with '@'
for (var i = 0; i < content.length; i++) {
content[i] = content[i].replace(/^\s+/g, ' ');
if (content[i].charAt(0) != '@' && content[i].charAt(1) != '@') {
content[i] = content[i].replace(/[\r\n](?!@)/, '');
} else {
content[i] = "\r\n" + content[i] + "\r\n";
}
}
content = content.join('');
content = content.replace(/[\r\n]{2,}/g, '\r\n');
return content;
}
exports.minify = minify;