可以在不添加 -min 后缀的情况下缩小 js 文件吗?
我想保留原来的名字。
gulp.task("js-external-release", function() {
gulp.src(config.vendorJs)
.pipe(minify())
.pipe(gulp.dest(config.dist + "/scripts"));
});
可以在不添加 -min 后缀的情况下缩小 js 文件吗?
我想保留原来的名字。
gulp.task("js-external-release", function() {
gulp.src(config.vendorJs)
.pipe(minify())
.pipe(gulp.dest(config.dist + "/scripts"));
});
这是一个非常古老的问题,但它仍然在 Google 上出现的频率很高,而且由于 Uglify 不再为 ES6+ 积极维护,而且gulp-minify
我想我要补充一点,它(现在)完全可以用gulp-minify
.
如果您在选项中指定缩小文件的扩展名只是.js
(或任何输入文件扩展名)gulp-minify
,则缩小文件将具有与原始文件相同的文件名。问题在于,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
- 它不会重命名文件,这是大多数 gulp 插件的默认行为。
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
将消除对此类插件的需求,并且在我看来比添加新插件更简单。