Se familiariser avec Gulp et poser une question.
J'ai donc une tâche CSS gulp comme celle ci-dessous qui fonctionne très bien:
var sassDir = 'app/scss';
var targetCssDir = 'public/assets';
gulp.task('css', function(){
return gulp.src(sassDir + '/main.scss')
.pipe(sass({ style: 'compressed' }).on('error', gutil.log))
.pipe(autoprefix('last 10 version'))
.pipe(gulp.dest(targetCssDir));;
});
Mais existe-t-il un moyen d'ajouter mes fichiers fournisseurs comme Bootstrap donc il sera inclus pour la minification et la concaténation.
J'espère que vous pourrez conseiller.!
gulp-sass répondra à votre demande. Veuillez me montrer comment compiler des fichiers Sass et réduire (ou compresser) les fichiers css compilés:
Remarque: outputStyle dans gulp-sass a quatre options: nested
, expanded
, compact
, compressed
Ça marche vraiment, je l'ai utilisé dans mon projet. J'espère que ça aide.
var gulp = require('gulp');
var sass = require('gulp-sass');
//sass
gulp.task('sass', function () {
gulp.src(['yourCSSFolder/*.scss', 'yourCSSFolder/**/*.scss'])
.pipe(sass({outputStyle: 'compressed'}))
.pipe(gulp.dest('yourCSSFolder/'));
});
// Default task
gulp.task('default', function () {
gulp.start('sass');
});
Pour rappel le readme
Je peux penser à deux solutions. Je pense que la meilleure option est d'utiliser Apparemment, cela ne fonctionne pas avec SASS, sauf si vous utilisez des importations SASS.@import
instructions dans votre fichier Sass pour inclure les fichiers du fournisseur. Utilisez des chemins d'accès relatifs à leur lieu de résidence et vous pouvez ensuite les inclure dans l'ordre de votre choix.
Vous pouvez également utiliser event-stream
et gulp-concat
pour concaténer des flux de fichiers. Dans ce cas, vous ne devez pas utiliser gulp-sass
pour compresser les fichiers, utilisez plutôt quelque chose comme gulp-csso
pour gérer la compression.
var es = require('event-stream'),
concat = require('gulp-concat');
gulp.task('css', function(){
var vendorFiles = gulp.src('/glob/for/vendor/files');
var appFiles = gulp.src(sassDir + '/main.scss')
.pipe(sass({ style: 'compressed' }).on('error', gutil.log));
return es.concat(vendorFiles, appFiles)
.pipe(concat('output-file-name.css'))
.pipe(autoprefix('last 10 version'))
.pipe(gulp.dest(targetCssDir));
});
Encore une fois, vous devez utiliser la première méthode si vous le pouvez, mais es.concat
est utile pour d'autres scénarios.
je l'ai trouvé récemment gulp-cssjoin cela vous permet de remplacer les importations par des css en ligne
le scss
@import '../../bower_components/angular/angular-csp.css';
la tâche de gorgée
var gulp = require('gulp'),
gutil = require('gulp-util'),
sass = require('gulp-Ruby-sass'),
cssjoin = require('gulp-cssjoin'),
csscomb = require('gulp-csscomb');
gulp.task('sass',['images'], function() {
return gulp.src('src/sass/*.{sass,scss}')
.pipe(sass({
compass: true,
bundleExec: true,
sourcemap: true,
sourcemapPath: '../src/sass'
}))
.on('error',gutil.log.bind(gutil, 'Sass Error'))
.pipe(cssjoin({
paths: ['./src/sass']
}))
.pipe(csscomb())
.pipe(gulp.dest('build'));
});
l'important est le passage des chemins
.pipe(cssjoin({
paths: ['./src/sass']
}))