0

我有一个简单的 gulpfile,它从 json 文件加载 javascript 对象(以获取基于环境的路径),编译我的 scss 文件,将它们移动到我的公共目录,并将任何 javascript 文件移动到公共目录。

所以我在 /app/Http/assets/js 和 scss 中的资产被编译并移动到 /public/assets/js 和 css

这是我的 gulpfile.js:

var gulp = require('gulp');
var gutil = require('gulp-util');
var notify = require('gulp-notify');
var sass = require('gulp-sass');
var autoprefix = require('gulp-autoprefixer');

// Load the application config
var config = require('./env.config.json');

// Where do you store your Sass files?
var sassDir = 'app/Http/Assets/scss';

// Which directory should Sass compile to?
var targetCSSDir = config.assets_path + '/css';

// Where do you store your CoffeeScript files?
var jsDir = 'app/Http/Assets/js';

// Which directory should CoffeeScript compile to?
var targetJSDir = config.assets_path + '/js';

/** Tasks **/
// Compile Sass, autoprefix CSS3, and save to target CSS directory
gulp.task('css', function () {
    return gulp.src(sassDir + '/**/*.scss')
        .pipe(sass())
        .pipe(autoprefix('last 10 version'))
        .pipe(gulp.dest(targetCSSDir))
        .pipe(notify('CSS minified'))
});

// Move Javascript
gulp.task('js', function () {
    return gulp.src(jsDir + '/**/*.js')
        .pipe(gulp.dest(targetJSDir))
});

// Keep an eye on Sass and Javascript files for changes...
gulp.task('watch', function () {
    gulp.watch(sassDir + '/**/*.scss', ['css']);
    gulp.watch(jsDir + '/**/*.js', ['js']);
});

// What tasks does running gulp trigger?
gulp.task('default', ['css', 'js', 'watch']);

这对我的 javascript 工作正常。此外,当我第一次运行“gulp”时,它会编译我所有的 scss 文件并相应地移动它们。但是,监视任务不适用于我的 scss 文件。它确实适用于 javascript 文件。(对我来说)真正奇怪的是,当我将我的 scss 源更改为特定文件时,手表可以工作。所以,

gulp.task('css', function () {
return gulp.src(sassDir + '/**/app.scss')
    .pipe(sass())
// and the rest is the same

将监视并编译对我的 app.scss 文件的任何更改,但显然不会对任何其他 scss 文件进行更改。

我已经重新安排并搜索了所有我能做的。我不明白为什么它不适用于观看 scss。

编辑:奇怪的是,似乎通知正在破坏 css 观察者。当我这样评论它时:

gulp.task('css', function () {
    return gulp.src(sassDir + '/**/*.scss')
        .pipe(sass())
        .pipe(autoprefix('last 10 version'))
        .pipe(gulp.dest(targetCSSDir))
        //.pipe(notify('CSS minified'))
});

一切都按预期工作。

提前致谢。

4

0 回答 0