gulp-url-base64-2020
v0.0.2
Published
Forked from abandonment repo. Original script by G33kLabs. Convert assets to inline data uri, ideal to integrate small pictures in your css. This project is foked and updated. Hope to keep it uptodate
Downloads
2
Readme
GULP gulp-url-base64-2020
Forked from https://github.com/G33kLabs/gulp-inline-base64 Thanks to G33kLabs for this script
all info below is updated and some script bugs are fixed
This helper will inject images and fonts into your css files.
Warning ! This technique is really efficient with small files (<14 Kb) cause it avoids DNS requests and makes the page loading faster. But for larger files it will be a mistake to use it !
Install it
npm install --save-dev gulp-url-base64-2020
Use it
Here is my sass config. As you can see, I use the 'maxSize' option to specitfy that files larger than 14kb are not injected into the css file.
var sass = require('gulp-sass'),
inline_base64 = require('gulp-url-base64-2020'),
autoprefixer = require('gulp-autoprefixer');
...
// SASS
gulp.task('sass', function() {
return gulp.src([
path_src + '/css/**/*.scss',
'!' + path_src + '/css/**/_*.scss'
])
.pipe(sass({
includePaths: [
path_src + '/css/',
'bower_components/',
],
imagePath: path_src
}))
.pipe(inline_base64({
baseDir: path_src,
maxSize: 14 * 1024,
debug: true
}))
.pipe(autoprefixer("last 2 version", "> 1%", {
cascade: true
}))
.pipe(gulp.dest(path_tmp + '/css'))
});
Options
baseDir
: the root path for assetsuseRelativePath
: overrides baseDir; root path is relative to the input file's directorymaxSize
: define the limit size of injected assetsdebug
: show debug messages
Force asset injection
In your css file, just add ,true
to the image url : it will force the asset to be injected in base64 in css file, event if the maxSize
is reached.
div.logo {
background: transparent url(/img/logo.png,true) no-repeat center center;
}