javascript - Gulp.js 类型错误 : glob pattern string required

标签 javascript gulp glob

我正在关注 this tutorial在 Ubuntu 上设置 gulp.js。但是,当我在终端中运行 gulp styles 时,出现“TypeError: glob pattern string required”错误。我是一个彻头彻尾的菜鸟 - 谁能指出我正确的方向?

我的 gulpfile.js 文件:

var gulp = require('gulp'),
    sass = require('gulp-ruby-sass'),
    autoprefixer = require('gulp-autoprefixer'),
    minifycss = require('gulp-minify-css'),
    rename = require('gulp-rename');

gulp.task('styles', function() {
  return gulp.src('sass/*.scss')
    .pipe(sass({ style: 'expanded' }))
    .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1'))
    .pipe(gulp.dest('css'))
    .pipe(rename({suffix: '.min'}))
    .pipe(minifycss())
    .pipe(gulp.dest('css'));
});

我的文件目录:

file pathing

编辑:

我在我的 gulp.js 文件中试过这个:

gulp.task('styles', function () {
    return sass('sass/*.scss', {
      style: 'expanded'
    })
    .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1'))
    .pipe(gulp.dest('css'))
    .pipe(rename({suffix: '.min'}))
    .pipe(minifycss())
    .pipe(gulp.dest('css'));
});

并收到此错误输出:

enter image description here

我的语法有误吗?

最佳答案

gulp 抛出的错误与 post-css npm 模块有关。由于您使用的是 sass,我不确定为什么会这样。尝试删除它并发布您的 package.json 文件。

根据文档,根据 gulp-ruby-sass,您不想在第一个声明中使用 pipe。试试这个:

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

更深入的信息

使用gulp-sass而不是 gulp-ruby-sass。在它的开发周期的这一点上,它是一个更快、更好支持的 Sass 版本。

这就是我通常在 styles 构建任务中使用 gulp-sass 的方式(基于 Yeoman 生成器 gulp-webapp ):

gulp.task('styles', () => {
  return gulp.src('app/styles/*.scss')
    .pipe($.sourcemaps.init())
    .pipe($.sass.sync({
      outputStyle: 'expanded',
      precision: 10,
      includePaths: ['.']
    }).on('error', $.sass.logError))
    .pipe($.autoprefixer({browsers: ['last 1 version']}))
    .pipe($.sourcemaps.write())
    .pipe(gulp.dest('.tmp/styles'))
    .pipe(reload({stream: true}));
});

它与您的类似,但它输出源映射,这在您调试压缩代码时非常有用。您必须添加 gulp-sourcemaps到你的 package.json 让它工作。

关于javascript - Gulp.js 类型错误 : glob pattern string required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34629296/

相关文章:

python - 在python中搜索具有相同文件名的所有文件的最有效方法

javascript - Gmail API 在 Javascript 中解码邮件

node.js - Mkcert 在 Node docker 容器上生成 rootCA,Browsersync over https 不安全

gulp - 如何忽略 gulp 中特定的 bower javascript 库(可能是正则表达式问题)?

javascript - Gulp concat 按顺序

python - 可以使用 glob.has_magic 吗?

javascript - AJAX 请求未使用 $.when(...) 并行执行

javascript - 如何将列值传递到Jqgrid中的另一列

javascript - AMD 模块 Javascript : Module Loader Error

javascript - globbing - 匹配某些文件扩展名但不匹配其他文件扩展名的正确方法