2014-01-06 178 views
11

我正在使用Gulp將我的sass編譯爲css。一個簡單的任務編譯_/sass目錄中的style.scss文件,並將輸出保存到項目的根目錄中。 style.scss僅用於導入_/sass目錄中的其他文件。Gulp-sass無法編譯scss文件

當我從命令行($ gulp)運行默認任務時,出現sass無法編譯的錯誤。它包含在下面。我已從所包含的文件中刪除所有內容並再次運行該任務。我仍然收到相同的錯誤(我在線閱讀的內容表明這可能會測試編碼問題,但我並不完全瞭解編碼以及這可能會如何破壞我的場景)。

我也從命令行$ sass _/sass/style.scss style.css運行,它與所包含文件中的內容完美配合。這對我來說暗示了gulp sass插件本身的問題。

從gulpfile.js相關片段:

var gulp = require('gulp'); 
var sass = require('gulp-sass'); 

// Compile sass files 
gulp.task('sass', function() { 
    gulp.src('./_/sass/style.scss') 
     .pipe(sass()) 
     .pipe(gulp.dest('./')); 
}); 

// The default task (called when you run `gulp`) 
gulp.task('default', function() { 
    gulp.run('sass'); 

    // Watch files and run tasks if they change 

    gulp.watch(['./_/sass/style.scss'], function() { 
    gulp.run('sass'); 
    }) 
}); 

style.scss的全部內容:

/* RESET */ 
@import '_/sass/reset'; 
/* TYPOGRAPHY */ 
@import '_/sass/typography'; 
/* MOBILE */ 
@import '_/sass/mobile'; 
/* MAIN */ 
@import '_/sass/main'; 

的目錄結構:

├── _ 
│   ├── inc 
│   │   ├── stuff 
│   ├── js 
│   │   ├── otherstuff.js 
│   └── sass 
│    ├── main.scss 
│    ├── mobile.scss 
│    ├── print.scss 
│    ├── reset.scss 
│    ├── style.scss 
│    └── typography.scss 
├── gulpfile.js 
└── style.css 

終端吐出:

[gulp] Using file /Users/jeshuamaxey/project/dir/path/gulpfile.js 
[gulp] Working directory changed to /Users/jeshuamaxey/project/dir/path/html5reset 
[gulp] Running 'default'... 
[gulp] Running 'sass'... 
[gulp] Finished 'sass' in 3.18 ms 
[gulp] Finished 'default' in 8.09 ms 

stream.js:94 
     throw er; // Unhandled stream error in pipe. 
      ^
source string:11: error: file to import not found or unreadable: 'reset' 
+0

編輯,包括style.scss – Jeshua

回答

15

文件讓你進口的是,你只需要把這個includePaths選項你一口青菜模塊作爲一個參數:

gulp.src('./_/sass/style.scss') 
     .pipe(sass({ includePaths : ['_/sass/'] })) 
     .pipe(gulp.dest('./')); 

...應該爲你做。

https://github.com/dlmanning/gulp-sass/issues/1

+0

謝謝。這解決了我遇到的特殊問題。很遺憾,我的配置仍然無法正常工作,但我會堅持下去。很多 – Jeshua

+0

這是唯一對我有用的東西。謝謝! – sean

0

爲此,你需要做同樣的gulpfile.js文件夾開始

@import '_/sass/reset' 

我覺得咕嘟咕嘟讀取進口和發現從那裏gulpfile.js位於

+0

的全部內容可悲的是這並沒有工作:( – Jeshua

+0

咕嘟咕嘟,青菜只用新的功能,使我們能夠更新包括@import的路徑https://npmjs.org/package/gulp-sass –