gulp-minify без переименования оригинальных файлов
Можно ли минимизировать JS-файлы без добавления суффикса -min?
Я хочу сохранить оригинальное имя.
gulp.task("js-external-release", function() {
gulp.src(config.vendorJs)
.pipe(minify())
.pipe(gulp.dest(config.dist + "/scripts"));
});
1 ответ
Использование gulp-uglify
вместо этого - он не переименовывает файлы, что является поведением по умолчанию для большинства плагинов gulp.
var gulp = require('gulp');
var uglify = require('uglify');
gulp.task("js-external-release", function() {
gulp.src(config.vendorJs)
.pipe(uglify())
.pipe(gulp.dest(config.dist + "/scripts"));
});
В качестве альтернативы, вы можете использовать gulp-rename
, но переключается на uglify
устранит необходимость в таком плагине и будет менее сложным, чем добавление нового плагина на мой взгляд.
Это очень старый вопрос, но он все еще довольно часто всплывает в 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'));
});