I've a variable like
var files = {
'foo.css': 'foo.min.css',
'bar.css': 'bar.min.css',
};
What I want the gulp to do for me is to minify
the files and then rename
for me.
But the tasks is currently written as (for one file)
gulp.task('minify', function () {
gulp.src('foo.css')
.pipe(minify({keepBreaks: true}))
.pipe(concat('foo.min.css'))
.pipe(gulp.dest('./'))
});
How to rewrite so it work with my variable files
defined above?
For this tutorial, make sure you have the latest version of the npm package installed on your machine. If you do not have it, you can download it here. Very good, now with the dependencies installed in the project, let's create a file called Gulpfile. js.
You should be able to select any files you need for your src with a Glob rather than defining them in an object, which should simplify your task. Also, if you want the css files minified into separate files you shouldn't need to concat them.
var gulp = require('gulp'); var minify = require('gulp-minify-css'); var rename = require('gulp-rename'); gulp.task('minify', function () { gulp.src('./*.css') .pipe(minify({keepBreaks: true})) .pipe(rename({ suffix: '.min' })) .pipe(gulp.dest('./')) ; }); gulp.task('default', ['minify'], function() { });
I tried the earlier answers, but I got a never ending loop because I wasn't ignoring the files that were already minified.
First use this code which is similar to other answers:
//setup minify task var cssMinifyLocation = ['css/build/*.css', '!css/build/*.min.css']; gulp.task('minify-css', function() { return gulp.src(cssMinifyLocation) .pipe(minifyCss({compatibility: 'ie8', keepBreaks:false})) .pipe(rename({ suffix: '.min' })) .pipe(gulp.dest(stylesDestination)); });
Notice the '!css/build/*.min.css'
in the src (i.e. var cssMinifyLocation)
//Watch task gulp.task('default',function() { gulp.watch(stylesLocation,['styles']); gulp.watch(cssMinifyLocation,['minify-css']); });
You have to ignore minified files in both the watch and the task.
This is what I have done
var injectOptions = {
addSuffix: '?v=' + new Date().getTime()
};
Then
return gulp.src('*.html')
.pipe(wiredep(options))
.pipe(inject(injectSrc, injectOptions))
.pipe(gulp.dest(''));
end result is unique timestamp added
Example in index.html
<script src="/public/js/app.js?v=1490309718489"></script>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With