gpt4 book ai didi

javascript - 使用 Critical 和 Gulp 为每个 *.HTML 文件生成 Critical CSS

转载 作者:行者123 更新时间:2023-12-03 02:16:52 28 4
gpt4 key购买 nike

好吧,过去一天我一直在绞尽脑汁试图解决这个问题。我正在尝试为目录中的每个 HTML 文件生成关键 CSS。我当前的工作代码在单个文件上运行良好:

export const criticalCSS = () => {
return critical.generate({
inline: true,
base: '_dist',
src: 'index.html',
css: '_dist/index.css',
width: 960,
height: 600,
dest: 'index.html',
extract: true,
ignore: ['@font-face']
})
}

通常情况下,我应该期望 src 接受文件路径数组,并且从我在每个 grunt 教程中看到的内容来看,grunt 插件就是这种情况。但是,我无法让它在 gulp 上工作。我看过一些建议 gulp-foreach 的帖子,但这似乎也不起作用。

对于每个示例:

export const criticalCSS = () => {
return gulp.src(paths.html.src).pipe(
foreach(function (stream, file) {
return stream.pipe(
critical.generate({
inline: true,
base: '_dist',
src: file.path,
css: '_dist/index.css',
width: 960,
height: 600,
dest: file.path,
extract: true,
ignore: ['@font-face']
})
)
})
)
}

有人成功了吗?我唯一能想象到的另一件事是用每个 HTML 文件路径硬编码一个数组,然后循环遍历它们并传递 key.generate 函数。但是,如果我必须手动指定每个 HTML 文件,这将无法维护。

最佳答案

如果您正在使用库 critical .

我已经取得了这样的成功:

var critical = require('critical').stream;
gulp.task('html-inline-critical', function () {
return gulp.src('public/**/*.html', {base: './'})
.pipe(
critical({
base: 'public/',
inline: true,
css: [
'public/c/css/main.css'
],
dimensions: [
{height: 720, width: 1280}
],
minify: true,
timeout: 120000
});
)
.on('error', function(err) {
gutil.log(gutil.colors.red(err.message));
})
.pipe(gulp.dest('./'));
});

关于javascript - 使用 Critical 和 Gulp 为每个 *.HTML 文件生成 Critical CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49337953/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com