我正在嘗試使用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但沒有骰子。
任何人都可以看到任何明顯而明顯的錯誤?
在此先感謝。
我不能回答你的問題,因爲我是新的節點/ gulp,但我能夠通過編輯我的node_modules/gulp-sass中的gulp-sass'index.js'文件來解決我自己的gulp-sass問題我的項目中的文件夾。我添加了一堆'console.log'語句來打印出發生了什麼事情,最終發現我的問題。希望這能夠幫助你! – Protagonist 2015-01-04 12:53:43