37 lines
1.0 KiB
JavaScript
37 lines
1.0 KiB
JavaScript
import glob from 'glob'
|
|
import fs from 'fs'
|
|
|
|
const pxToRemRegex = /-\[(\d*\.?\d*)px\]/g;
|
|
const pxToEmRegex = /text-\[(\d*\.?\d*)px\]/g;
|
|
|
|
const excludedFolders = ['.nuxt', 'node_modules'];
|
|
|
|
const convertFile = (filePath) => {
|
|
const fileContent = fs.readFileSync(filePath, 'utf8');
|
|
if (filePath.includes('node_modules'))
|
|
return;
|
|
|
|
const updatedContent = fileContent.replace(pxToRemRegex, (match, pxValue) => {
|
|
let remValue = (parseInt(pxValue) / 16).toFixed(1);
|
|
if (parseInt(remValue) == remValue)
|
|
remValue = parseInt(remValue)
|
|
return `-[${remValue}rem]`;
|
|
});
|
|
|
|
|
|
|
|
// ذخیره محتوای بهروزشده در فایل
|
|
fs.writeFileSync(filePath, updatedContent, 'utf8');
|
|
};
|
|
|
|
// پیمایش فایلهای Nuxt با صرفنظر از پوشههای استثنا
|
|
glob('**/*.{vue,css}', { cwd: './', ignore: excludedFolders }, (err, files) => {
|
|
if (err) {
|
|
console.error(err);
|
|
return;
|
|
}
|
|
|
|
files.forEach(filePath => {
|
|
convertFile(filePath);
|
|
});
|
|
}); |