Y
Y
Yuri Krot2017-11-04 21:30:02
Layout
Yuri Krot, 2017-11-04 21:30:02

How to include glyphicons with bootstrap-sass when building a Gulp project?

How can and should I include glyphicons icon fonts with npm bootstrap-sass to use them as in a standard Bootstrap project.
gulp file:

spoiler
'use strict';

var gulp = require('gulp'),
    watch = require('gulp-watch'),
    prefixer = require('gulp-autoprefixer'),
    uglify = require('gulp-uglify'),
    sass = require('gulp-sass'),
    sourcemaps = require('gulp-sourcemaps'),
    rigger = require('gulp-rigger'),
    cssmin = require('gulp-minify-css'),
    inject = require('gulp-inject'),
    imagemin = require('gulp-imagemin'),
    pngquant = require('imagemin-pngquant'),
    rimraf = require('rimraf'),
    browserSync = require("browser-sync"),
    reload = browserSync.reload;

var path = {
    build: {
        html: 'build/',
        js: 'build/js/',
        css: 'build/css/',
        img: 'build/img/',
        fonts: 'build/fonts/'
    },
    src: {
        html: 'src/*.html',
        js: 'src/js/main.js',
        style: 'src/style/main.sass',
        img: 'src/img/**/*.*',
        fonts: 'src/fonts/**/*.*'
    },
    watch: {
        html: 'src/**/*.html',
        js: 'src/js/**/*.js',
        style: 'src/style/**/*',
        img: 'src/img/**/*.*',
        fonts: 'src/fonts/**/*.*'
    },
    clean: './build'
};


var config = {
    server: {
        baseDir: "./build"
    },
    tunnel: true,
    host: 'localhost',
    port: 9000,
    logPrefix: "Frontend"
};

gulp.task('webserver', function () {
    browserSync(config);
});

gulp.task('clean', function (cb) {
    rimraf(path.clean, cb);
});

gulp.task('html:build', function () {
    gulp.src(path.src.html) 
        .pipe(rigger())
        .pipe(gulp.dest(path.build.html))
        .pipe(reload({stream: true}));
});

gulp.task('js:build', function () {
    gulp.src(path.src.js) 
        .pipe(rigger()) 
        .pipe(sourcemaps.init()) 
        .pipe(uglify()) 
        .pipe(sourcemaps.write('.')) 
        .pipe(gulp.dest(path.build.js))
        .pipe(reload({stream: true}));
});

gulp.task('style:build', function () {
    gulp.src(path.src.style) 
        .pipe(sourcemaps.init())
        .pipe(sass())
        .pipe(prefixer())
        .pipe(cssmin())
        .pipe(sourcemaps.write(''))
        .pipe(gulp.dest(path.build.css))
        .pipe(reload({stream: true}));
});

gulp.task('image:build', function () {
    gulp.src(path.src.img) 
        .pipe(imagemin({
            progressive: true,
            svgoPlugins: [{removeViewBox: false}],
            use: [pngquant()],
            interlaced: true
        }))
        .pipe(gulp.dest(path.build.img))
        .pipe(reload({stream: true}));
});

gulp.task('fonts:build', function() {
    gulp.src(path.src.fonts)
        .pipe(gulp.dest(path.build.fonts))
});

gulp.task('build', [
    'html:build',
    'js:build',
    'style:build',
    'fonts:build',
    'image:build'
]);


gulp.task('watch', function(){
    watch([path.watch.html], function(event, cb) {
        gulp.start('html:build');
    });
    watch([path.watch.style], function(event, cb) {
        gulp.start('style:build');
    });
    watch([path.watch.js], function(event, cb) {
        gulp.start('js:build');
    });
    watch([path.watch.img], function(event, cb) {
        gulp.start('image:build');
    });
    watch([path.watch.fonts], function(event, cb) {
        gulp.start('fonts:build');
    });
});

gulp.task('default', ['build', 'webserver', 'watch']);

I connect Bootstrap to the project via SASS:
@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap"
@include font-face(Glyphicons, ../../node_modules/bootstrap-sass/assets/fonts/bootstrap)

The SASS compiler crashes with an error:
Error: Invalid CSS after "...ace(Glyphicons,": expected expression (e.g. 1px, bold), was "..\\..\\node_modules\\"
        on line 7 of src/style/main.sass
>> @include font-face(Glyphicons, ..\..\node_modules\bootstrap-sass\assets\fonts\
   -------------------------------^

    at options.error (C:\Sites\Roboschool\node_modules\node-sass\lib\index.js:291:26)

Is there any other way to connect normally?
Or am I wrong somewhere?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
A
Alexandr Mi, 2017-11-05
@Fillosof

Glyphicons CDN
HTML:
CSS:
Bootstrap CDN with Font Awesome
Font Awesome CDN Font Awesome
itself Does not require any fonts to be included.( )
@include font-face

A
Andrew, 2017-11-04
@daaner

What for? Take the minimal version and just add? Are you going to remove / change the icons?
And it’s even better to connect from somewhere in the CDN, maybe someone already has it in the cache ... Saving on loading

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question