0

我是使用 gulp 的新手,我认为我已经正确设置了它,但它似乎没有做它应该做的事情。

我的 gulpfile.js 有

    gulp.task('compass', function() {
      return gulp.src('sites/default/themes/lsl_theme/sass/**/*.scss')
      .pipe(compass({
        config_file: 'sites/default/themes/lsl_theme/config.rb',
        css: 'css',
        sass: 'scss'
      }))
      .pipe(gulp.dest('./sites/default/themes/lsl_theme/css'))
      .pipe(notify({
        message: 'Compass task complete.'
      }))
      .pipe(livereload());
   });

gulp.task('scripts', function() {
  return gulp.src([
      'sites/default/themes/lsl_theme/js/**/*.js'
    ])
    .pipe(plumber())
    .pipe(concat('lsl.js'))
    .pipe(gulp.dest('sites/default/themes/lsl_theme/js'))
    // .pipe(stripDebug())
    .pipe(uglify('lsl.js'))
    .pipe(rename('lsl.min.js'))
    .pipe(gulp.dest('sites/default/themes/lsl_theme/js'))
    .pipe(sourcemaps.write())
    .pipe(notify({
      message: 'Scripts task complete.'
    }))
    .pipe(filesize())
    .pipe(livereload());
});

和手表功能

gulp.task('watch', function() {
  livereload.listen();
  gulp.watch('./sites/default/themes/lsl_theme/js/**/*.js', ['scripts']);
  gulp.watch('./sites/default/themes/lsl_theme/sass/**/*.scss', ['compass']);
});

当我运行 gulp 时,结果是

[16:14:36] Starting 'compass'...
[16:14:36] Starting 'scripts'...
[16:14:36] Starting 'watch'...
[16:14:37] Finished 'watch' after 89 ms

并且没有注册任何更改。

对于文件结构,我的 gulpfile.js 位于根目录中,sass、css 和 js 都位于 root/sites/default/themes/lsl_theme 中,其中 sass 文件夹包含文件夹“components”,其中包含完整的部分。

4

2 回答 2

0

我的假设是你在窗户上?如我错了请纠正我。

有这个问题gulp-notify往往会破坏gulp.watch功能。尝试注释掉

// .pipe(notify({
//   message: 'Scripts task complete.'
// }))

看看问题是否仍然存在。

如果这确实解决了问题,则此线程中的解决方案可能会有所帮助。

您可以将该gulp-if 插件osnode 模块结合使用 来确定您是否在 Windows 上,然后 exclude gulp-notify,如下所示:

var _if = require('gulp-if');

//...

// From https://stackoverflow.com/questions/8683895/variable-to-detect-operating-system-in-node-scripts
var isWindows = /^win/.test(require('os').platform());

//...

     // use like so:
    .pipe(_if(!isWindows, notify('Coffeescript compile successful')))
于 2015-05-06T03:41:34.367 回答
0

事实证明,我的大部分问题只是作为 Gulp 的新手。当我'scripts'从我的 gulp 手表中取出时,它开始工作。

然后,我建立了连接,它正在监视将新的连接和缩小的 js 文件放入的同一目录,因此它正在放置新文件,检查该文件,并一遍又一遍地循环导致内存问题以及'compass'不允许跑。

在创建一个'dest'文件夹来保存新的js之后,一切都开始工作了。

于 2015-05-07T13:41:08.990 回答