lg_frontend/buildPlugins/pxresize.js

30 lines
799 B
JavaScript

'use strict';
let postcss = require('postcss');
let pxRegExp = /\b(\d+(\.\d+)?)px\b/;
let pxGlobalRegExp = new RegExp(pxRegExp.source, 'g');
module.exports = postcss.plugin('postcss-px2rem', (option) => {
let opt = Object.assign({
scale: 0.5,
ignore: []
}, option)
return (root, result) => {
const ignore = opt.ignore || []
const file = result.opts.from
for (const ignoreElement of ignore) {
if (file.indexOf(ignoreElement) >= 0) return
}
root.walkDecls(function(decl) {
if (/px/.test(decl.value)) {
decl.value = decl.value.replace(pxGlobalRegExp, function(match, p1) {
return p1 * opt.scale + 'px'
})
}
})
result.root = root
};
});