gpt4 book ai didi

minify - 在单个文件上运行 gulp 插件

转载 作者:行者123 更新时间:2023-12-05 00:26:26 25 4
gpt4 key购买 nike

我正在尝试编写一个可用于根据文件类型缩小 html、css 和 js 的 minify 函数。我想将现有的 gulp 插件用于这 3 个缩小过程来进行实际的缩小。我遇到的问题是我不知道如何在单个黑胶唱片文件上调用插件。这是我到目前为止所拥有的:

var cssmin = require('gulp-cssmin');
var htmlmin = require('gulp-minify-html');
var uglify = require('gulp-uglify');

var minifiers = {
js: uglify,
css: cssmin,
html: htmlmin
};

function minify(options) {
var options = options || {};
return tap(function(file){
var fileType = file.path.split('.').pop();
options = options[fileType] || options
var minifier = minifiers[fileType];
if(!minifier)
console.error("No minifier for " + fileType + " - " + file.path);

// WHAT DO I DO HERE? This doesn't work but I want to do something similar
file.pipe(minifier(options));
});
}

我希望能够像这样调用 minify 函数:
gulp.src(['test.html', 'test.css', 'test.js'])
.pipe(minify());

最佳答案

使用 gulp-filter .

var gulpFilter = require('gulp-filter');
var jsFilter = gulpFilter('**/*.js');
var cssFilter = gulpFilter('**/*.css');
var htmlFilter = gulpFilter('**/*.html');

gulp.task('default', function () {
gulp.src('assets/**')
.pipe(jsFilter)
.pipe(uglify())
.pipe(jsFilter.restore())
.pipe(cssFilter)
.pipe(cssmin())
.pipe(cssFilter.restore())
.pipe(htmlFilter)
.pipe(htmlmin())
.pipe(htmlFilter.restore())
.pipe(gulp.dest('out/'));
});

也适用于单个文件,但 globs 更具前瞻性:)

关于minify - 在单个文件上运行 gulp 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22313270/

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