Gulp 将 sass 编译成一个 css 文件时复制 css
Gulp duplicating css when compiling sass into one css file
我是 Stack Overflow 和 Gulp(使用 3.9.1)的新手。我试图将我所有的 scss 文件编译成一个大的 css 文件,我可以将其包含在我的网站中。到目前为止,我的 gulp 文件如下所示:
var gulp = require('gulp');
var sass = require('gulp-sass');
var concat = require('gulp-concat');
sass.compiler = require('node-sass');
var gulp = require('gulp');
var concat = require('gulp-concat');
gulp.task('sass', [], function() {
gulp.src("resources/scss/**/*.scss")
.pipe(concat('main.scss'))
.pipe(sass())
.on('error', console.error.bind(console))
.pipe(gulp.dest('resources/css'));
});
gulp.task('watch', function () {
gulp.watch('resources/scss/**/*.scss', ['sass']);
});
我编译的 scss 文件如下所示:
@charset "UTF-8";
@import "partials/variables";
@import "partials/typography";
@import "partials/utilities";
@import "partials/nav";
@import "partials/gallery";
@import "partials/footer";
@import "partials/brand";
每个文件中的所有内容在我的 main.css 文件(由我的 gulp 文件创建)中出现两次,但在 scss 文件中只出现一次。
谁能帮助我理解我做错了什么?我查看了一些与我类似的其他问题,但它们似乎没有解决问题。
正如@DerekNguyen 所说,下面更正了其他内容:
var gulp = require('gulp');
var sass = require('gulp-sass');
// next two lines are not needed
// var concat = require('gulp-concat');
// sass.compiler = require('node-sass');
// duplicates not needed
// var gulp = require('gulp');
// var concat = require('gulp-concat');
gulp.task('sass', function() {
// add return statement below
// your gulp.src would typically be the one file into which
// the partials are imported, presumably main.scss in your case
// The resulting css file will automatically be named main.css if you start with main.scss
return gulp.src("resources/scss/main.scss")
// .pipe(concat('main.scss'))
.pipe(sass())
.on('error', console.error.bind(console))
.pipe(gulp.dest('resources/css'));
});
// added done below to signal async completion
gulp.task('watch', function (done) {
gulp.watch('resources/scss/**/*.scss', ['sass']);
done();
});
我是 Stack Overflow 和 Gulp(使用 3.9.1)的新手。我试图将我所有的 scss 文件编译成一个大的 css 文件,我可以将其包含在我的网站中。到目前为止,我的 gulp 文件如下所示:
var gulp = require('gulp');
var sass = require('gulp-sass');
var concat = require('gulp-concat');
sass.compiler = require('node-sass');
var gulp = require('gulp');
var concat = require('gulp-concat');
gulp.task('sass', [], function() {
gulp.src("resources/scss/**/*.scss")
.pipe(concat('main.scss'))
.pipe(sass())
.on('error', console.error.bind(console))
.pipe(gulp.dest('resources/css'));
});
gulp.task('watch', function () {
gulp.watch('resources/scss/**/*.scss', ['sass']);
});
我编译的 scss 文件如下所示:
@charset "UTF-8";
@import "partials/variables";
@import "partials/typography";
@import "partials/utilities";
@import "partials/nav";
@import "partials/gallery";
@import "partials/footer";
@import "partials/brand";
每个文件中的所有内容在我的 main.css 文件(由我的 gulp 文件创建)中出现两次,但在 scss 文件中只出现一次。
谁能帮助我理解我做错了什么?我查看了一些与我类似的其他问题,但它们似乎没有解决问题。
正如@DerekNguyen 所说,下面更正了其他内容:
var gulp = require('gulp');
var sass = require('gulp-sass');
// next two lines are not needed
// var concat = require('gulp-concat');
// sass.compiler = require('node-sass');
// duplicates not needed
// var gulp = require('gulp');
// var concat = require('gulp-concat');
gulp.task('sass', function() {
// add return statement below
// your gulp.src would typically be the one file into which
// the partials are imported, presumably main.scss in your case
// The resulting css file will automatically be named main.css if you start with main.scss
return gulp.src("resources/scss/main.scss")
// .pipe(concat('main.scss'))
.pipe(sass())
.on('error', console.error.bind(console))
.pipe(gulp.dest('resources/css'));
});
// added done below to signal async completion
gulp.task('watch', function (done) {
gulp.watch('resources/scss/**/*.scss', ['sass']);
done();
});