2

我使用 sass(由 gulp 任务触发)来生成我的 css 文件。我最近格式化了我的计算,这个任务停止工作。 

var sass = require('gulp-ruby-sass');
var config = require('../config');

gulp.task('styles', ['copy'], function() {
  gulp.src(config.sources.sass)
    .pipe(sass({ style: config.isProduction ? 'compressed' : 'expanded' }))
    .pipe(gulp.dest(config.build.cssDir));
});

在我重新安装我的操作系统(Windows 8.1)之前,这个任务曾经运行良好。现在,在我运行此任务后,没有可见的错误,但没有创建 css 文件。

所以,问题是:

为什么我的 gulp 任务停止生成我的 css 文件? 

4

1 回答 1

1

你的 gulp 任务很好。

gulp-ruby-sass默认情况下,使用 gem sass 来编译你的 scss 文件。由于您最近格式化了您的计算机,我敢打赌您安装了最新版本的 Ruby Installer for Windows。我做了一些测试,发现 sass 在使用 Ruby 2.2.2 时似乎无法在 Windows 上运行。sass gem 在 Ubuntu 和 OS X 上的 Ruby 2.2 上运行良好。

如果这是一个选项,我建议您从 Ruby 2.2.x 降级到 Ruby 2.1.6,这应该可以解决您的问题。

如果不是,您可以使用 gulp-debug 来检查您的流并从那里开始。

gulp.task('styles', ['copy'], function() {
  gulp.src(config.sources.sass)
    .pipe(debug({title: 'Before sass:'}))
    .pipe(sass({ style: config.isProduction ? 'compressed' : 'expanded' }))
    .pipe(debug({title: 'After sass:'}))
    .pipe(gulp.dest(config.build.cssDir));
});

如果您无法降级您的 ruby​​ 版本,您可以gulp-sass使用gulp-ruby-sass. Gulp sass 根本不需要 ruby​​,因为它使用在 node 中为 C/C++ 库制作的包装器 - libsass

您还可以编辑您的帖子并包含您的gulp-ruby-sass版本(或您的package.json)以及您的 nodejs 版本。

于 2015-04-24T14:18:17.700 回答