Nin*_*tle 5 javascript gulp gulp-minify
可以在不添加 -min 后缀的情况下缩小 js 文件吗?
我要保留原名。
gulp.task("js-external-release", function() {
gulp.src(config.vendorJs)
.pipe(minify())
.pipe(gulp.dest(config.dist + "/scripts"));
});
Run Code Online (Sandbox Code Playgroud)
Jan*_*uet 12
这是一个非常古老的问题,但它仍然在 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'));
});
Run Code Online (Sandbox Code Playgroud)
使用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"));
});
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用gulp-rename,但切换到uglify将消除对此类插件的需求,并且在我看来比添加新插件更简单。