我有我使用一饮而尽文件,它包含创建标准非压缩.css
文件和压缩.css
文件的过程;我曾经简单地通过缩小刚刚生成的非压缩版本来生成压缩版本,但是这导致映射指向非压缩的.css
文件而非.scss
文件的问题,因为它实际上从未实际上关闭了.scss
文件。使用咕嘟咕嘟时创建标准和压缩css文件有效
所以我改变了它,以便两个进程现在使用.scss
文件,但是这看起来效率很低,因为它们都必须经过相同的进程才能建立它们各自的文件。
这里是我gulpfile.js
的相关部分:
var gulp = require('gulp');
var cssnano = require('gulp-cssnano');
var plumber = require('gulp-plumber');
var postcss = require('gulp-postcss');
var rename = require('gulp-rename');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var uglify = require('gulp-uglify');
var livereload = require('gulp-livereload');
var autoprefixer = require('autoprefixer');
var ap_options = {
browsers: [
'last 4 Chrome versions',
'last 4 Firefox versions',
'last 4 Edge versions',
'last 2 Safari versions',
'ie >= 10',
'> 1.49%',
'not ie <= 9'
],
};
gulp.task('postcss', function() {
return gulp.src('scss/*.scss')
.pipe(plumber()) // Deal with errors.
.pipe(sourcemaps.init()) // Wrap tasks in a sourcemap.
.pipe(sass({ // Compile Sass using LibSass.
errLogToConsole: true,
outputStyle: 'expanded' // Options: nested, expanded, compact, compressed
}))
.pipe(postcss([ // Parse with PostCSS plugins.
autoprefixer(ap_options),
]))
.pipe(sourcemaps.write('../maps')) // Create sourcemap.
.pipe(gulp.dest('./css/')) // Create style.css.
.pipe(livereload());
});
gulp.task('cssnano', ['postcss'], function() {
return gulp.src('scss/*.scss')
.pipe(plumber()) // Deal with errors.
.pipe(sourcemaps.init()) // Wrap tasks in a sourcemap.
.pipe(sass({ // Compile Sass using LibSass.
errLogToConsole: true,
outputStyle: 'compressed' // Options: nested, expanded, compact, compressed
}))
.pipe(postcss([ // Parse with PostCSS plugins.
autoprefixer(ap_options),
]))
.pipe(cssnano({ // Minify CSS
safe: true // Use safe optimizations
}))
.pipe(rename({ suffix: '.min' })) // Append our suffix to the name
.pipe(sourcemaps.write('../maps')) // Create sourcemap.
.pipe(gulp.dest('./css/')) // Create style.min.css.
.pipe(livereload());
});
有没有更有效的方法来做到这一点,我可以创建正确的映射文件既非压缩和压缩版本?
与从非压缩版本构建min版本相比,从SCSS构建两个CSS文件需要多长时间? – Barryman9000
@ Barryman9000不确定,我想我可以做一些测试。但主要问题是我在工作中使用的个人电脑比我的家用电脑慢很多,我试图加快速度,因为速度有点慢。 – Brett