0

クライアント側のcoffeescriptとsassにある私のスタイルをコンパイルするためのいくつかのタスクを含むgulpfile.jsがあります。coffeescript は正しくコンパイルされていますが、sass はそうではありません。

ここに私のgulpfile.jsがあります -

var gulp   = require('gulp'),
    util   = require('gulp-util'),
    sass   = require('gulp-sass'),
    coffee = require('gulp-coffee');

var paths = {
    scripts: {
        src:  'src/coffee/**/*.coffee',
        dest: 'public/javascripts'
    },
    styles: {
        src:  'src/*.sass',
        dest: 'public/stylesheets'
    }
};

gulp.task('scripts', function() {
    return gulp.src(paths.scripts.src)
        .pipe(coffee())
        .pipe(gulp.dest(paths.scripts.dest));
});

gulp.task('sass', function () {
   return gulp.src(paths.styles.src)
       .pipe(sass({errLogToConsole: true}))
       .pipe(gulp.dest(paths.styles.dest));
});

gulp.task('watch', function () {
  gulp.watch(paths.scripts.src, ['scripts']);
  gulp.watch(paths.styles.src, ['styles']);
});

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

それは私の「監視」タスクにあるはずですが、何が欠けていますか?

* 編集 *

ここに私が得ている出力があります -

[gulp] Using file exampledir/gulpfile.js
[gulp] Working directory changed to exampledir/examplesite
[gulp] Running 'scripts'...
[gulp] Running 'watch'...
[gulp] Finished 'watch' in 14 ms
[gulp] Finished 'scripts' in 106 ms
[gulp] Running 'default'...
[gulp] Finished 'default' in 10 μs
4

2 に答える 2

3

.srcもう一方を忘れたようですgulp.src(path.styles)

それはうまくいくに違いない:)

gulp.task('sass', function () {
   return gulp.src(paths.styles.src)
     .pipe(sass({errLogToConsole: true}))
     .pipe(gulp.dest(paths.styles.dest));
});

* 編集 *

その他のポイント: デフォルトのタスクは saas タスクに依存しません。それが実行されない理由です。

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

それを修正します。

それ以外の場合は、スタイル ファイルの 1 つが変更されるのを待ってからコンパイルしてください。開始時にコンパイルをトリガーしません。

*編集v2 *

.scss拡張機能と両方をコンパイルする場合は.sass、path.styles.src 変数を調整するだけです。

paths = {
    ...
    styles: {
       src:  ['src/*.scss', 'src/*.sass']
    ...

動作するはずです。それがvinyl-fsのように見える方法でない限り。

*編集v3 *

くそ。スタイル フォルダの監視が正しくありません。undeinfedstylesタスクをトリガーします。sassタスクに変更してみてください。

gulp.watch(paths.styles.src, ['sass']);
于 2014-02-12T17:32:32.423 に答える
0

gulp-sass を使用して .sass ファイルをコンパイルしようと長い時間を費やした後、代わりにコンパス プラグインを使用することにしました。魅力のように機能します:

gulp.task('sass', function() {
  return gulp.src('./src/sass/' + '**/*.sass')
    .pipe($plugin.plumber())
    .pipe($plugin.compass({
      css:   './public/css',
      sass:  './src/sass/'
    }))
    .pipe(gulp.dest('./public/css'));
});
于 2014-07-23T18:42:01.870 に答える