I am not sure what you are after here. Obviously, you already know that the elixir scripts method also minifies after concatenating. And, the elixir gulp --production minifies whatever you give it. So I can not understand why you are extending elixir with a compress method. With all you are trying to do, just make a regular gulpfile and forget about elixir.
Nov 20, 2016
17
Level 1
Laravel elixir task sequencing
I'm using Laravel Elixir to compile SASS, merge scripts, compression and versioning CSS & JS files. At the end, I need to remove original files after versioning them, but it seems because of non-sequence task running, JS files in controller directory (after compression) are getting removed earlier than getting versioned. Here is my gulpfile.js codes:
const elixir = require('laravel-elixir');
const gulp = require('gulp');
const uglify = require('gulp-uglify');
const del = require('del');
const Task = Elixir.Task;
elixir.config.sourcemaps = false;
elixir.extend('compress', function(folder, dest) {
if (!dest) {
dest = folder;
}
new Task('compress', function() {
gulp.src(folder + '/**/*.js')
.pipe(uglify())
.pipe(gulp.dest(dest + '/'));
})
.watch(folder + '/**/*.js');
});
elixir.extend('delete', function(path) {
new Task('delete', function() {
return del(path);
});
});
elixir((mix) => {
mix.sass('app.scss', 'public/assets/css/app.min.css')
.scripts([
'app.js',
'config.js',
], 'public/assets/js/app.min.js')
.compress('resources/assets/js/controllers', 'public/assets/js/controllers')
.version([
'assets/css/app.min.css',
'assets/js/controllers/*.js',
'assets/js/app.min.js'
])
.delete([
'public/assets/css/app.min.css',
'public/assets/js/controllers',
'public/assets/js/app.min.js'
]);
});
I know that there are solutions using pure-gulp, but I'm looking for solving this through elixir itself. Any idea?
Please or to participate in this conversation.