是否可以在不添加-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
将消除对此类插件的需求,并且在我看来,它比添加新插件更简单。