我讀過Get the current file name in gulp.src(),它似乎正在接近我正在嘗試執行的操作,但我需要幫助。在Gulp Stream中獲取當前文件名
考慮在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知識,並且已經完全和完全空白。
哇。謝謝!這很好用! – ethfun