Sass 带css的大口海螺scss

Sass 带css的大口海螺scss,sass,gulp,Sass,Gulp,我现在想改进我的吞咽文件。 我想使用stream在一个任务中使用normalize.css连接已编译的SCS。 实际上我是这样做的 var gulp = require('gulp'), runSequence = require('run-sequence'), minifyCss = require('gulp-minify-css'), sourcemap = require('gulp-sourcemaps'), concat = require('gulp-concat'), scss

我现在想改进我的吞咽文件。 我想使用stream在一个任务中使用normalize.css连接已编译的SCS。 实际上我是这样做的

var gulp = require('gulp'),
runSequence = require('run-sequence'),
minifyCss = require('gulp-minify-css'),
sourcemap = require('gulp-sourcemaps'),
concat = require('gulp-concat'),
scss = require('gulp-ruby-sass');

var path = {
  normalize: 'app/bower_components/normalize.css/normalize.css',
  dir: './tmp',
  scss: './app/styles/main.scss',
  css: './tmp/styles'
};

gulp.task('styles', function(callback) {
  runSequence('scss', 'css', callback);
});

gulp.task('scss',function() {
  return scss(path.scss)
   .on('error',function(err) {
      console.error('Error!', err.message);
   });
});

gulp.task('css', function() {
  return gulp.src([path.normalize, './tmp/styles/main.css'])
  .pipe(concat('main.css'))
  .pipe(sourcemap.init())
  .pipe(minifyCss())
  .pipe(sourcemap.write())
  .pipe(gulp.dest(path.css));
});
将normalize.css重命名为normalize.scss

在./app/styles/main.scss中使用:@import.././app/bower\u components/normalize.css/normalize.scss

另见: ,它允许您:

@import "CSS:some_folder/some_css_file"
有关libSass的最新版本,请参阅:

因此@import.././app/bower_components/normalize.css/normalize应该可以工作,并且可以内联导入css文件。

重命名normalize.css以normalize.scss

在./app/styles/main.scss中使用:@import.././app/bower\u components/normalize.css/normalize.scss

另见: ,它允许您:

@import "CSS:some_folder/some_css_file"
有关libSass的最新版本,请参阅:


因此,@import.././app/bower\u components/normalize.css/normalize应该可以工作并内联导入您的css文件。

您可以使用合并功能轻松完成此操作 包装:

var merge = require('merge2');

gulp.task('styles', function() {
  return merge(
    gulp.src(path.normalize), // our first stream
    scss(path.scss)           // our second stream
  )                           // merged at this point
  .pipe(concat('main.css'))
  .pipe(sourcemap.init())
  .pipe(minifyCss())
  .pipe(sourcemap.write())
  .pipe(gulp.dest(path.css));
})
您甚至可以为这两个流初始化sourcemaps,请尝试gulp ruby sass中的{sourcemap:true}选项

使现代化 我对您的问题进行了更深入的研究,找到了一种将sourcemaps贯穿始终的方法:

var merge = require('merge2');
var postcss = require('gulp-postcss');
var csswring = require('csswring');

gulp.task('styles', function() {
    return merge(
        gulp.src(path.normalize)
            .pipe(sourcemaps.init()),
        scss(path.scss, {sourcemap: true})
            .pipe(sourcemaps.write())
    )
    .pipe(postcss([csswring]))
    .pipe(concat('main.css'))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest(path.css));
});

请注意,gulp minify css有时会返回错误的sourcemaps,这就是为什么我将其替换为gulp postcss的原因。

您可以使用合并轻松完成此操作 包装:

var merge = require('merge2');

gulp.task('styles', function() {
  return merge(
    gulp.src(path.normalize), // our first stream
    scss(path.scss)           // our second stream
  )                           // merged at this point
  .pipe(concat('main.css'))
  .pipe(sourcemap.init())
  .pipe(minifyCss())
  .pipe(sourcemap.write())
  .pipe(gulp.dest(path.css));
})
您甚至可以为这两个流初始化sourcemaps,请尝试gulp ruby sass中的{sourcemap:true}选项

使现代化 我对您的问题进行了更深入的研究,找到了一种将sourcemaps贯穿始终的方法:

var merge = require('merge2');
var postcss = require('gulp-postcss');
var csswring = require('csswring');

gulp.task('styles', function() {
    return merge(
        gulp.src(path.normalize)
            .pipe(sourcemaps.init()),
        scss(path.scss, {sourcemap: true})
            .pipe(sourcemaps.write())
    )
    .pipe(postcss([csswring]))
    .pipe(concat('main.css'))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest(path.css));
});

请注意,gulp minify css有时会返回buggy sourcemaps,这就是为什么我将其替换为gulp postcss

gulp concat JS和css

var gulp = require('gulp'); 
var sass = require('gulp-sass');
var concat= require('gulp-concat');
var minifyCss  = require('gulp-cssnano');

var uglify = require('gulp-uglify');
var pump = require('pump');


gulp.task('sass', function(){
  gulp.src(['css/**/*.scss' ,'css/**/*.css' ])
    .pipe(sass()) // Using gulp-sass
    .pipe(minifyCss())  
    .pipe(concat('style_all.css')) 
    .pipe(gulp.dest('build/css'))
});


gulp.task('compressJS', function (cb) {

 return gulp.src(['lib/*.js'])
        .pipe(concat('concat.js'))
        .pipe(uglify())
        .pipe(gulp.dest('build/js'))


});


gulp.watch('files-to-watch', ['tasks', 'to', 'run']);


gulp.task('default', ['sass' , 'compressJS'] , function(){
    console.log(':::default:::')
});



gulp.watch(['css/**/*.scss' ,'css/**/*.css' ], ['sass']);
gulp.watch(['lib/*.js'], ['compressJS']);

咕噜咕噜咕噜JS和CSS

var gulp = require('gulp'); 
var sass = require('gulp-sass');
var concat= require('gulp-concat');
var minifyCss  = require('gulp-cssnano');

var uglify = require('gulp-uglify');
var pump = require('pump');


gulp.task('sass', function(){
  gulp.src(['css/**/*.scss' ,'css/**/*.css' ])
    .pipe(sass()) // Using gulp-sass
    .pipe(minifyCss())  
    .pipe(concat('style_all.css')) 
    .pipe(gulp.dest('build/css'))
});


gulp.task('compressJS', function (cb) {

 return gulp.src(['lib/*.js'])
        .pipe(concat('concat.js'))
        .pipe(uglify())
        .pipe(gulp.dest('build/js'))


});


gulp.watch('files-to-watch', ['tasks', 'to', 'run']);


gulp.task('default', ['sass' , 'compressJS'] , function(){
    console.log(':::default:::')
});



gulp.watch(['css/**/*.scss' ,'css/**/*.css' ], ['sass']);
gulp.watch(['lib/*.js'], ['compressJS']);

好吧,那有什么问题吗?有错误吗?它会吃掉你的作业吗?这要写两次main.css,也许有更好的方法?@mrdotb,如果你想用gulp来做,你可以使用inludePaths设置。它看起来像这样:scsspath.scss,{includePaths:['app/bower_components/normalize.css/']}。然后,您只需在主scss文件上执行如下操作:@import normalize;好吧,那有什么问题吗?有错误吗?它会吃掉你的作业吗?这要写两次main.css,也许有更好的方法?@mrdotb,如果你想用gulp来做,你可以使用inludePaths设置。它看起来像这样:scsspath.scss,{includePaths:['app/bower_components/normalize.css/']}。然后,您只需在主scss文件上执行如下操作:@import normalize;谢谢你的回答,但我想大口喝。谢谢你的回答,但我想大口喝。