32 lines
1.3 KiB
JavaScript
32 lines
1.3 KiB
JavaScript
"use strict";
|
|
exports.__esModule = true;
|
|
var fs = require('fs');
|
|
var mfeBaseUrlKey = 'MFE_BASE_URL';
|
|
var srcUrlRegex = /url\((\\?["'])?(?!data:)\S+(\\?["'])?\)/g;
|
|
function normalizeCssPaths(params) {
|
|
params.paths = params.paths ? params.paths : [];
|
|
params.paths.forEach(function (path) { return normalizeCssPath(path, params.outDir); });
|
|
}
|
|
exports.normalizeCssPaths = normalizeCssPaths;
|
|
function normalizeCssPath(path, outputDirectory) {
|
|
console.log("Start processing " + path);
|
|
var css = fs.readFileSync(path, 'utf8');
|
|
var counter = 0;
|
|
var processedCss = css.replace(srcUrlRegex, function (srcUrl) {
|
|
if (srcUrl.search(outputDirectory) != -1)
|
|
return srcUrl;
|
|
var fileName = getFileName(srcUrl);
|
|
var processedUrl = "url('" + outputDirectory + "/" + fileName + "')";
|
|
counter++;
|
|
console.log("Replaced " + srcUrl + " -> " + processedUrl);
|
|
return processedUrl;
|
|
});
|
|
console.log("Replaced " + counter + " urls");
|
|
fs.writeFileSync(path, processedCss);
|
|
}
|
|
function getFileName(srcUrl) {
|
|
var url = srcUrl.substring(4, srcUrl.length - 1); // unbox 'url(...)'
|
|
url = url.replace(/(\\?["'])/g, '');
|
|
var urlPaths = url.split('/');
|
|
return urlPaths[urlPaths.length - 1].split('?')[0];
|
|
}
|