Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | const fs = require('fs'); const mime = require('mime'); const path = require('path'); const root = path.resolve(__dirname, '../../../assets/images'); module.exports = (opts = {}) => { return { postcssPlugin: 'postcss-base64', Rule(css) { css.walkDecls(/background(\-image)?/i, decl => { let rePattern = /url\(\s*['|"]?(.*?)['|"]?\s*\)/i; let assetPath; if (rePattern.test(decl.value)) { assetPath = path.join(root, decl.value.match(rePattern)[1]); if (fs.existsSync(assetPath)) { decl.value = decl.value.replace( rePattern, 'url(data:' + mime.getType(assetPath) + ';base64,' + fs.readFileSync(assetPath, 'base64') + ')' ); } } }); } }; }; module.exports.postcss = true; |