У меня есть файл глотком, который я использую, и он содержит процесс, который создает стандартный несжатый.css
файл и сжатый.css
файл; Я использовал для сгенерированной сжатой версии просто путем минимизации только что сгенерированной несжатой, однако это вызвало проблемы с сопоставлениями, указывающими на не сжатый файл .css
, а не на файлы .scss
, так как он никогда не работал с файлами .scss
.Создание стандартных и сжатых файлов CSS при использовании Gulp эффективно
Поэтому я изменил его так, что оба процесса теперь используют файлы .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());
});
Есть ли более эффективный способ сделать это, где я могу создать правильные файлы отображения как несжатый и сжимаются версии?
Сколько времени требуется для создания обоих файлов CSS из SCSS по сравнению с созданием минимальной версии из несжатой версии? – Barryman9000
@ Barryman9000 Не совсем уверен, я полагаю, что смогу сделать несколько тестов. Но главная проблема заключается в том, что ПК, над которым я работаю, работает намного медленнее, чем мой домашний компьютер, и я пытаюсь ускорить процесс, поскольку он медленный. – Brett