首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gulp ruby-sass错误不是一个函数

gulp ruby-sass错误不是一个函数
EN

Stack Overflow用户
提问于 2015-04-24 07:44:00
回答 2查看 1.4K关注 0票数 1

我正在尝试使用gulp-ruby-sass在我的配置中运行sass任务,这是我得到的错误(错误后面将是我的配置和代码):

代码语言:javascript
复制
 [04:57:11] TypeError: undefined is not a function
at DestroyableTransform.Readable.pipe [as _pipe] (E:\Do\angular-jspm-todo\no
de_modules\gulp-autoprefixer\node_modules\through2\node_modules\readable-stream\
lib\_stream_readable.js:516:8)
    at DestroyableTransform.pipe2 (E:\Do\angular-jspm-todo\node_modules\gulp-plu
mber\index.js:70:20)
    at Gulp.<anonymous> (E:\Do\angular-jspm-todo\gulp\tasks\sass.js:15:8)
    at module.exports (E:\Do\angular-jspm-todo\node_modules\gulp\node_modules\or
chestrator\lib\runTask.js:34:7)
    at Gulp.Orchestrator._runTask (E:\Do\angular-jspm-todo\node_modules\gulp\nod
e_modules\orchestrator\index.js:273:3)
    at Gulp.Orchestrator._runStep (E:\Do\angular-jspm-todo\node_modules\gulp\nod
e_modules\orchestrator\index.js:214:10)
    at E:\Do\angular-jspm-todo\node_modules\gulp\node_modules\orchestrator\index
.js:279:18
    at finish (E:\Do\angular-jspm-todo\node_modules\gulp\node_modules\orchestrat
or\lib\runTask.js:21:8)
    at module.exports (E:\Do\angular-jspm-todo\node_modules\gulp\node_modules\or
chestrator\lib\runTask.js:60:3)
    at Gulp.Orchestrator._runTask (E:\Do\angular-jspm-todo\node_modules\gulp\nod
e_modules\orchestrator\index.js:273:3)
[04:57:11] gulp-ruby-sass stderr: OptionParser::InvalidOption: invalid option: -
-sourcemap-path=app/css
  Use --trace for backtrace.
E:\Do\angular-jspm-todo\node_modules\gulp-autoprefixer\node_modules\through2\nod
e_modules\readable-stream\lib\_stream_readable.js:523
    dest.end();
         ^
TypeError: undefined is not a function
    at DestroyableTransform.onend (E:\Do\angular-jspm-todo\node_modules\gulp-aut
oprefixer\node_modules\through2\node_modules\readable-stream\lib\_stream_readabl
e.js:523:10)
    at DestroyableTransform.g (events.js:199:16)
    at DestroyableTransform.emit (events.js:129:20)
    at E:\Do\angular-jspm-todo\node_modules\gulp-autoprefixer\node_modules\throu
gh2\node_modules\readable-stream\lib\_stream_readable.js:965:16
    at process._tickCallback (node.js:355:11)

我对sass任务的配置如下所示:

代码语言:javascript
复制
    sass: {
        src:  app + '/scss/**/*.{sass,scss}',
        dest: app + '/css',
  options: {
    noCache: true,
    compass: false,
    sourcemap: true,
    sourcemapPath: app+'/css'
  }
},
autoprefixer: {
  browsers: [
    'last 2 versions',
    'safari 5',
    'ie 8',
    'ie 9',
    'opera 12.1',
    'ios 6',
    'android 4'
  ],
  cascade: true
},
scsslint: {
  src: [
    app + '/scss/**/*.{sass,scss}',
    ]
}

sass任务如下:

代码语言:javascript
复制
gulp.task('sass',function(){
return sass(config.sass.src,config.sass.options)
           .pipe(plumber({errorHandler:notify.onError('<%= error.message %>')}))
           .pipe(sourcemaps.init())
           .pipe(autoprefixer(config.autoprefixer))
           .pipe(filter)
           .pipe(sourcemaps.write('.',{includeContent:false}))
           .pipe(filter.restore())
           .pipe(gulp.dest(config.sass.dest));
});

这是我的scsslint任务:

代码语言:javascript
复制
var gulp = require('gulp');
var scsslint = require('gulp-scss-lint');
var config   = require('../config').scsslint;

gulp.task('scsslint',function(){
    return gulp.src(config.src)
               .pipe(scsslint(config.options))
});

我在browser-syncwatch任务中执行它们:

代码语言:javascript
复制
 gulp.task('serve',['jshint','scsslint','sass'],function(){
browserSync(config);

});

gulp.task('watch','serve',function(){ gulp.watch(config.jshint,'jshint');gulp.watch(config.sass,'scsslint','sass');});

EN

回答 2

Stack Overflow用户

发布于 2015-04-24 08:01:10

我可以从堆栈跟踪中看到两个问题:

1-我想您在执行pipe(filter)之前忘记了这个var filter = gulpFilter(['*.css', '!*.map']);

2-如果你在这里阅读了gulp ruby-sass的文档,这里没有sourcemapPath选项:https://github.com/sindresorhus/gulp-ruby-sass

票数 0
EN

Stack Overflow用户

发布于 2015-07-28 19:29:06

您正在为您的源使用glob。从gulp-ruby-sass README

gulp ruby-sass目前还不支持globs,只支持单个文件或目录。就像萨斯一样。

要修复此问题,请将您的配置更改为:

src: app + '/scss'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29836294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档