Laravel 5 在使用laravel 5中的长生不老药时,如何防止gulp watch崩溃(例如停止观看)?

Laravel 5 在使用laravel 5中的长生不老药时,如何防止gulp watch崩溃(例如停止观看)?,laravel-5,gulp,gulp-watch,laravel-elixir,Laravel 5,Gulp,Gulp Watch,Laravel Elixir,所以我很喜欢长生不老药 但当我运行gulp watch并编写css(确切地说是SCS)时,它在几次保存后崩溃,从而迫使我再次启动gulp watch。这让我发疯,几乎到了无法完成工作的地步 我曾经研究过有类似问题的人,但没有成功。我还发现了一些类似的文章: 但要么是他们的解决方案过时了,要么是我太笨了,不能正确使用他们的解决方案。很可能是后者 这是我的gulp.js文件: var elixir = require('laravel-elixir'); elixir(function(mix)

所以我很喜欢长生不老药

但当我运行gulp watch并编写css(确切地说是SCS)时,它在几次保存后崩溃,从而迫使我再次启动gulp watch。这让我发疯,几乎到了无法完成工作的地步

我曾经研究过有类似问题的人,但没有成功。我还发现了一些类似的文章:

但要么是他们的解决方案过时了,要么是我太笨了,不能正确使用他们的解决方案。很可能是后者

这是我的gulp.js文件:

var elixir = require('laravel-elixir');

elixir(function(mix) {
    mix
    .sass('styles.scss', 'public/css')
    .scripts(null,
        'public/js/all.js',
        'resources/assets/js'
    )
    .version([
        'public/css/styles.css',
        'public/js/all.js'
    ])
});

有没有办法解决这个问题?

这个问题

gulp watch
设置为在检测到错误时停止,从而强制执行手动重新启动gulp watch的需要。恼人

解决方案(不优雅,但有效)

首先,我现在的gulp.js是:

var gulp        = require('gulp'),
    elixir      = require('laravel-elixir'),
    plumber     = require('gulp-plumber');

gulp.task('default', function() {
});

gulp.task('watch', function() {
    gulp.watch('resources/**', ['default']);
    elixir(function(mix) {
        mix
        .sass('styles.scss', 'public/css')
        .scripts(null,
            'public/js/all.js',
            'resources/assets/js'
        )
        .version([
            'public/css/styles.css',
            'public/js/all.js'
        ])
    }).pipe(plumber());
});
我所做的:

  • 我安装了gulp plumber
    $npm安装--保存开发gulp plumber
  • 我需要gulp管道工和我的gulp文件的基本gulp依赖项
  • 我定义了一个空的默认任务,否则gulp不会和我玩
  • 我创建了一个名为“watch”的gulp任务,否则
    gulpwatch
    将无法像以前那样在命令行中工作
  • 我定义了
    gulp.watch()
    来制作gulp,ehh,watch
  • 我附加了
    .pipe(水管工())如果我的长生不老药功能结束。管道工是一种防止吞咽观察者因错误而崩溃的东西
  • 因此,为了方便您,请将下面的代码复制粘贴到gulp.js文件中,运行
    $npm install--save dev gulp plumber
    ,然后填写您自己的组合

    var gulp        = require('gulp'),
        elixir      = require('laravel-elixir'),
        plumber     = require('gulp-plumber');
    
    gulp.task('default', function() {
    });
    
    gulp.task('watch', function() {
        gulp.watch('resources/**', ['default']);
        elixir(function(mix) {
            //Your own elixir code as you know it.
        }).pipe(plumber());
    });
    
    注意:运行
    gulpwatch
    时,命令行/终端中会出现错误。别理它。试着保存一个scss或js文件,重新加载brwoser,你会看到gulp和elixir做得很好

    错误:

    接住

  • 现在运行
    gulp
    什么也不做
  • 如果您出现语法错误,观察程序将停止,直到您修复错误。但是,您不必手动重新启动它。说,如果你错过了一个机会;在您的SCS中,一旦您添加;和保存
  • 注意:这是一个黑客。不太优雅。但它是有效的。根据本线程中的contra:gulp v.4.x.x应该修复gulp watch在发现错误时崩溃的问题