gulp-ruby-sass @import在编译一个独特的文件时

Gab*_*bin 3 css ruby import sass gulp

我正在使用Gulp和gulp-ruby-sass来编译scss文件.该项目的文件夹如下所示:

css/
    scss/
        grid.scss
        styles.scss
    styles.css
node_modules/
    .bin/
        ...
    gulp/
        ...
    gulp-ruby-sass/
        ...
gulpfile.js
index.html
Run Code Online (Sandbox Code Playgroud)

gulpfile.js:

// Load plugins
var gulp = require( 'gulp' ),
    sass = require( 'gulp-ruby-sass' );

// Styles
gulp.task( 'styles', function () {
  return gulp.src( 'css/scss/styles.scss' )
    .pipe( sass( { style : 'compressed' } ) )
    .pipe( gulp.dest( 'css/' ) );
});
Run Code Online (Sandbox Code Playgroud)

CSS/SCSS/styles.scss:

@import 'grid';
Run Code Online (Sandbox Code Playgroud)

css/styles.css跟踪错误"要导入的文件未找到或不可读:网格".

文档建议在gulp.dest()glob中包含所有必需的.scss文件,所以我:

// Load plugins
var gulp = require( 'gulp' ),
    sass = require( 'gulp-ruby-sass' );

// Styles
gulp.task( 'styles', function () {
  return gulp.src( 'css/scss/*.scss' )
    .pipe( sass( { style : 'compressed' } ) )
    .pipe( gulp.dest( 'css/' ) );
});
Run Code Online (Sandbox Code Playgroud)

它现在完美地运行,但每个.scss文件都被编译并导出为.css文件,而我只想将styles.scss文件导出为styles.css.

我怎么能这样做?我应该坚持使用每个导出的文件吗?


编辑:我使用"loadPath"进行了几次尝试,但路径似乎是相对于gulp-ruby-sass文件夹而不是项目:

/private/var/folders/tb/tlvf2ysj21x49qb1h3fgbjz00000gn/T/gulp-ruby-sass/

avc*_*lle 5

你需要使用scss partials命名约定,这是以下划线(_)开头,所以你告诉Sass文件不能自己编译.

将grid.scss重命名为_grid.scss

styles.scss保留,因为你想要它编译.

导入为@import 'grid';