在Gulp Stream中获取当前文件名

ethfun

我已经阅读了在gulp.src()中获取当前文件名的方法,看来它正在接近我要尝试执行的操作,但是我需要帮助。

在中考虑以下功能gulpfile.js

function inline() {
  return gulp.src('dist/**/*.html')
    .pipe($.if(PRODUCTION, inliner('dist/css/app.css')))
    .pipe(gulp.dest('dist'));
}

并且inliner(),要更全面(也在gulpfile):

function inliner(css) {
  var css = fs.readFileSync(css).toString();
  var mqCss = siphon(css);

  var pipe = lazypipe()
    .pipe($.inlineCss, {
      applyStyleTags: false,
      removeStyleTags: false,
      removeLinkTags: false
    })
    .pipe($.replace, '<!-- <style> -->', `<style>${mqCss}</style>`);

  return pipe();
}

这些功能获取一个外部CSS文件,并将它们内联到相应的HTML中以发送电子邮件。

真的很想知道如何做这样的事情:

function inline() {
  return gulp.src('dist/**/*.html')
    .pipe($.if(PRODUCTION, inliner('dist/css/' + file.name + '.css')))
    .pipe(gulp.dest('dist'));
}

您可能会问自己:“为什么?” 好吧,我没有一个CSS文件。如果app.css要内联所有内容,那么将应用比实际需要的样式更多的样式。

所以我想内联:

email1.css    ----  to  ------->    email1.html
email2.css    ----  to  ------->    email2.html
email3.css    ----  to  ------->    email3.html

等等。本质上,我想获取当时在Gulp流中正在处理的HTML文件的名称,将其保存为变量,然后将其传递给该inliner('dist/css/' + file.name + '.css')位。我已经用尽了所有的Gulp知识,并且完全空白了。

斯文·舍嫩

基本上,您需要做的是将.html流中的每个文件通过自己的子流向下发送inliner()gulp-foreach插件让您做到这一点。

然后,只需从文件的绝对路径确定文件的简单名称即可。内置的node.js可以满足path.parse()您的要求。

放在一起:

var path = require('path');

function inline() {
  return gulp.src('dist/**/*.html')
    .pipe($.if(PRODUCTION, $.foreach(function(stream, file) {
       var name = path.parse(file.path).name;
       return stream.pipe(inliner('dist/css/' + name + '.css'));
     })))
    .pipe(gulp.dest('dist'));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

在gulp.src()中获取当前文件名

来自分类Dev

Gulp-从src()获取文件名

来自分类Dev

在Babel插件中获取当前文件名?

来自分类Dev

如何在Dojo中获取当前文件名

来自分类Dev

gulp:获取要传递的文件的文件名

来自分类Dev

Gulp.js从.src()获取文件名

来自分类Dev

使用 gulp-ejs 时获取文件名

来自分类Dev

Gulp 生成动态文件名

来自分类Dev

在gulp.rename()调用中使用早期gulp.src中的文件名

来自分类Dev

如何在Perl单行代码中获取当前文件的文件名?

来自分类Dev

从sublime_plugin.WindowCommand获取当前文件名

来自分类Dev

Java获取当前文件名EXE

来自分类Dev

Grunt:在任务配置中获取当前文件名

来自分类Dev

如何在Hadoop Reduce中获取当前文件名

来自分类Dev

如何在Excel中插入当前文件名?

来自分类Dev

gulp从文件夹中读取所有文件名并存储在某个文件中

来自分类Dev

gulp-notify-获取文件名,而不是整个路径,并显示错误

来自分类Dev

使用Gulp向文件名添加时间戳

来自分类Dev

Gulp:我如何查看我的Glob的文件名

来自分类Dev

在Gulp中使用变量作为目标文件名?

来自分类Dev

Gulp Yaml Front Matter到JSON添加文件名

来自分类Dev

Gulp:我如何查看我的Glob的文件名

来自分类Dev

在此Gulp任务中创建文件名签名的责任是什么?

来自分类Dev

gulp-rev-replace不会更改master.blade.php中的修订文件名

来自分类Dev

Gulp合并凉亭文件

来自分类Dev

用gulp复制文件

来自分类Dev

wired gulp,文件顺序

来自分类Dev

如何查看gulp文件?

来自分类Dev

编译适当的 gulp 文件