2014-12-09 101 views
3

我正在嘗試使用gulp-ruby-sass和/或gulp-sass,但都不適合我,並且認爲我已經掌握了它所有設置都正確。我已經看了一堆其他SO帖子,但沒有爲我工作。無法獲得gulp-ruby-sass或gulp-sass的工作

我已經得到了另一個吞噬任務,它是遞歸複製資產目錄和index.html從src到dist,並且每次都有效。

要測試sass設置是正確的,我運行一個香草sass編譯,然後運行gulp; sass更改工作並通過遞歸副本呈現。這裏的命令爲青菜測試:

$ sass ./sass/main.scss ./src/assets/css/main.css 
$ gulp 

忘記香草SASS測試和回這裏的一口青菜問題 - 在我gulpfile我跑了一口青菜任務我運行遞歸複製任務之前,因此,如果它工作,然後sass的變化應該被應用和複製。至少這就是我的想法。

這裏顯示相關文件我目錄結構:

├── src 
    │ ├── index.html 
    │ └── assets 
    │   ├── css 
    │   │ └── main.css 
    │   ├── js 
    │   │ └── app.js 
    │   └── img 
    │    └── etc.jpg 
    │ 
    ├── dist 
    │ └── index.html (from ./src via recursive copy) 
    │ └── assets 
    │   └── (same as ./src/assets via recursive copy) 
    │ 
    ├── sass 
    │ ├── main.scss 
    │ ├── _partial1.scss 
    │ ├── _partial2.scss 
    │ └── etc ... 
    │ 
    ├── gulpfile.js 
    │ 
    ├── node_modules 
    │ └── etc ... 
    │ 
    └── bower_components 
     └── etc ... 

在gulpfile.js有一對夫婦這對SRC /資產/的遞歸複製做工精細文件映射對象。但爲了測試gulp-ruby-sass任務,我正在對sass/css路徑進行硬編碼以消除文件映射作爲錯誤的可能性。

對於我在OSX Maverics 10.9.5運行和記錄認爲我有正確的環境設置:

$ ruby -v 
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin13] 
$ sass -v 
Sass 3.4.9 (Selective Steve) 

這裏是我的gulpfile.js顯示方法我試過到目前爲止,與一飲而盡-sass相關的任務註釋掉:

var gulp = require('gulp'); 
    var watch = require('gulp-watch'); 
    var gsass = require('gulp-ruby-sass'); 
    // var gsass = require('gulp-sass'); 
    var gutil = require('gulp-util'); 

    // Base paths: 
    var basePaths = { 
     srcRoot: './src/', 
     distRoot: './dist/', 
     bowerRoot: './bower_components/' 
    }; 

    // File paths: 
    var filePaths = { 
     sassRoot: basePaths.srcRoot + 'sass/', 
     assetsBuildRoot: basePaths.srcRoot + 'assets/', 
     jqMin: basePaths.bowerRoot + 'jquery/dist/jquery.min.js', 
     html: basePaths.srcRoot + 'index.html' 
    }; 

    // With gulp-ruby-sass 
    gulp.task('compile-sass', function() { 
      gulp.src('./sass/main.scss') 
      .pipe(gsass({sourcemap: true, sourcemapPath: './sass/'})) 
      .on('error', function (err) { console.log(err.message); }) 
      .pipe(gulp.dest('./src/assets/css')); 
    }); 

    // With gulp-sass 
    // gulp.task('gsass', function() { 
    // gulp.src('./sass/*.scss') 
    //  .pipe(gsass()) 
    //  .pipe(gulp.dest('./src/assets/css')); 
    // }); 

    // Assets directory copied recursively from /src to /dist: 
    gulp.src(filePaths.assetsBuildRoot + '**/*.*', {base : basePaths.srcRoot}) 
     .pipe(gulp.dest(basePaths.distRoot)); 

    // Copy index.html from /src to /dist: 
    gulp.src(filePaths.html) 
     .pipe(gulp.dest(basePaths.distRoot)); 

    gulp.task('default', function() { 

     // With gulp-ruby-sass 
     // return gulp.src('./sass/main.scss') 
     // .pipe(gsass({sourcemap: true, sourcemapPath: './sass/'})) 
     // .on('error', function (err) { console.log(err.message); }) 
     // .pipe(gulp.dest('./src/assets/css')); 

     // gulp.watch('compile-sass'); 

     console.log('You reached the finishing line'); 
    }); 

我曾試圖向而各種修正錯誤,如: 刪除所有編譯.css文件和運行一飲而盡編譯香草青菜,但沒有的.css產生。 也嘗試刪除所有由香草sass編譯生成的* .map文件,然後運行gulp但沒有骰子。

任何人都可以看到任何明顯而明顯的錯誤?

在此先感謝。

+0

我不能回答你的問題,因爲我是新的節點/ gulp,但我能夠通過編輯我的node_modules/gulp-sass中的gulp-sass'index.js'文件來解決我自己的gulp-sass問題我的項目中的文件夾。我添加了一堆'console.log'語句來打印出發生了什麼事情,最終發現我的問題。希望這能夠幫助你! – Protagonist 2015-01-04 12:53:43

回答

1

如果您正在使用的Sass> = 3.4,則需要安裝一飲而盡,紅寶石薩斯版本1.0.0-α:

npm install --save-dev [email protected] 

在這個新版本中,大口喝,紅寶石SASS是一飲而盡源適配器,並且語法稍微改變了。相反的:

gulp.task('compile-sass', function() { 
     gulp.src('./sass/main.scss') 
     task code here 
}); 

新的語法是:

gulp.task('compile-sass', function() { 
     return sass('./sass/main.scss') 
     task code here 
}); 

你可以找到新版本的文件,包括對sourcemaps新語法的更多信息。 https://github.com/sindresorhus/gulp-ruby-sass/tree/rw/1.0

+0

感謝您的答覆 - 我打開了另一個簡化版本的q,並得到了答案。基本上我沒有運行正確的吞嚥CMD /依賴 - 這裏是答案:http://stackoverflow.com/questions/27412516/gulp-sass-will-not-compile-to-css/27431259#27431259 – redplanet 2015-01-05 19:46:06

+0

很高興你排序出來。 – philipb3 2015-01-05 19:58:24