Залпом сократите несколько JS файлов в один
Я новичок в Gulp и задаюсь вопросом, как я могу минимизировать (объединить) свою коллекцию в один файл вместо каждого файла отдельно.
пример
var gulp = require('gulp');
var uglify = require('gulp-uglify');
gulp.task('minify', function () {
gulp.src([
'content/plugins/jquery/jquery-2.1.1.js',
'content/plugins/jquery/jquery-ui.js',
'content/js/client.js'])
.pipe(uglify())
.pipe(gulp.dest('content/js/client.min.js')) // It will create folder client.min.js
});
gulp.task('default', ['minify']);
Как вы можете видеть, я пытаюсь минимизировать 3 файла javascript, а затем вывести их в один client.min.js
. Возможно ли это?
3 ответа:
этот плагин поможет gulp-concat.
использование:
var concat = require('gulp-concat'); gulp.task('scripts', function() { gulp.src(['./lib/file3.js', './lib/file1.js', './lib/file2.js']) .pipe(concat('all.js')) .pipe(uglify()) .pipe(gulp.dest('./dist/')) });
вместо того, чтобы пройти через много сложных вещей, я рекомендую вам получить
laravel-elixir
. Это компиляция sass, less, babel, coffescript и даже добавление чего-то, что вы хотите не только с JavaScript, но и с css. Весь код, который вам нужно будет:var gulp = require('gulp'); var elixir = require('laravel-elixir'); elixir(function(mix) { mix.scripts(['app.js', 'controllers.js', 'sweetalert.js'], 'public/js/all.js'); mix.styles(['normalize.css', 'app.css', 'sweetalert.css'], 'public/css/all.css') });
попробуем gulp-concat-util для работы скрипты. Это похоже на concat, но есть некоторые помощники для склеивания файлов. Существует специальный помощник для конкатинации скриптов.
var concat = require('gulp-concat-util'); gulp.task('scripts', function() { gulp.src(['./lib/file3.js', './lib/file1.js', './lib/file2.js']) .pipe(concat.scripts('all.js')) .pipe(uglify()) .pipe(gulp.dest('./dist/')) });