javascript Gulp CSS媒体查询内联
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript Gulp CSS媒体查询内联相关的知识,希望对你有一定的参考价值。
const fs = require('fs');
const path = require('path');
const siphon = require('siphon-media-query');
const through = require('through2');
module.exports = (opts = {}) => {
return through.obj((file, encoding, callback) => {
if (file.isNull()) {
return file;
}
if (file.isStream()) {
throw new Error('Streaming not supported');
}
let contents = file.contents.toString();
// find stylesheet nodes that match this pattern
const matches = contents.match(/<link rel="stylesheet" type="text\/css" href=".*css\/.*.css">/g);
// remove stylesheet nodes
matches.forEach((match) => contents = contents.replace(match, ''));
// get only styles nested in media queries
const mqCss = matches
// capture the uri path
.map((match) => match.match(/href="(.*css\/.*.css)"/)[1])
// read and parse for mqs in the file from the dist directory
.map((cssPath) => siphon(fs.readFileSync(
path.resolve(__dirname, 'dist', cssPath)).toString()
))
// combine all css media queries
.join('\n');
// replace this comment with media query styles
contents = contents.replace(/<!-- <style> -->/, `<style>${mqCss}</style>`);
file.contents = new Buffer(contents);
callback(null, file);
});
}
以上是关于javascript Gulp CSS媒体查询内联的主要内容,如果未能解决你的问题,请参考以下文章
我们可以嵌套不会通过 Gulp 添加到编译输出的整体大小的媒体查询 (SASS) 吗?
使用媒体查询内联样式[重复]
使用媒体查询进行移动优化的背景而不是内联图像?
将供应商 CSS 与 LESS 结合后以及 gulp-minify 后 Sourcemap 错误
CSS 媒体查询和 JavaScript 窗口宽度不匹配
CSS 媒体查询和 JavaScript 窗口宽度不匹配