在不重命名原始文件的情况下吞下minify



是否可以在不添加-min后缀的情况下缩小js文件?

我想保留原名。

gulp.task("js-external-release", function() {
    gulp.src(config.vendorJs)
        .pipe(minify())
        .pipe(gulp.dest(config.dist + "/scripts"));
});

这是一个非常古老的问题,但它仍然在谷歌上弹出得很高,而且由于Uglify不再为ES6+积极维护,而gulp-minify是,我想补充一下,(现在)完全可以用gulp-minify来做这件事。

如果在gulp-minify选项中指定缩小文件的扩展名仅为.js(或输入的任何文件扩展名),则缩小文件的文件名将与原始文件名相同。问题是,默认情况下,gulp-minify还会将输入文件的非缩小副本编译到输出目录中,而该非缩小副本会在缩小副本之后添加,从而覆盖它,只留下原始文件的副本。

要解决此问题,请将noSource选项设置为true,然后不会输出输入文件的副本:

gulp.task("js-external-release", function() {
    gulp.src(config.vendorJs)
    .pipe(minify({
        ext: {
            min: '.js' // Set the file extension for minified files to just .js
        },
        noSource: true // Don’t output a copy of the source file
    }))
    .pipe(gulp.dest(config.dist + '/scripts'));
});

使用gulp-uglify-它不会重命名文件,这是大多数gull插件的默认行为。

var gulp = require('gulp');
var uglify = require('gulp-uglify');
gulp.task("js-external-release", function() {
    gulp.src(config.vendorJs)
        .pipe(uglify())
        .pipe(gulp.dest(config.dist + "/scripts"));
});

或者,您可以使用gulp-rename,但切换到uglify将消除对此类插件的需求,并且在我看来,它比添加新插件更简单。

相关内容

  • 没有找到相关文章

最新更新