【问题标题】:TypeError: glob pattern string requiredTypeError:需要全局模式字符串
【发布时间】:2016-01-03 05:11:07
【问题描述】:

我正在尝试使用gulp-ruby-sass 编译sass,但我得到的是TypeError: glob pattern string required

这就是我的gulpfile.js 的样子:

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

var paths = {
    sassSrcPath: ['Content/css/**/*.scss'],
    sassDestPath: ['build/css/'],
    sassImportsPath: ['Content/styleguide/']
};

// Styles Task
gulp.task('styles', function () {
    gulp.src(paths.sassSrcPath)
        .pipe(sass({
            style: 'compressed',
            loadPath: [paths.sassImportsPath]
        }))
        .pipe(gulp.dest(paths.sassDestPath));
});

// Watch Task
gulp.task('watch', function () {
    gulp.watch(paths.sassSrcPath, ['styles']);
});

gulp.task('default', ['styles', 'watch']);

这是我的文件夹结构:

├── Content
│   ├── css
│   │   ├── partials
│   │   │   └─_icons.scss
│   │   ├── main.css.scss
│   │   └── styleguide.css.scss
│   └── styleguide
│       ├── css
│       │   └─ vendor
│       │      └─ // Bunch of other folders that contain .sass files
│       └── // Other .sass files
└── gulpfile.js

我是 Gulp 的新手,我也没有使用过 Grunt,如果我犯了一个小错误,请原谅。

【问题讨论】:

  • 在我的情况下,即使在直接运行 sass 之后,这个 sassDestPath: ['build/css/'] 也会生成错误 "Error: Invalid output folder" 所以我将其更改为 'build/css/'这样就解决了问题

标签: gulp gulp-ruby-sass


【解决方案1】:

查看docs,您似乎不应该通过管道输入gulp-ruby-sass,而是直接这样调用它:

gulp.task('styles', function () {
    return sass(paths.sassSrcPath, {
            style: 'compressed',
            loadPath: [paths.sassImportsPath]
        })
        .pipe(gulp.dest(paths.sassDestPath));
});

【讨论】:

  • 非常感谢,我看了视频教程,其中 gulp-ruby-sass 是按我的使用方式使用的,所以我什至没有看官方文档。
猜你喜欢
  • 2016-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多