在 laravel 5 中使用长生不老药时,如何防止 gulp 手表崩溃(例如停止观看)?
How do I prevent gulp watch from crashing (e.g. stop watching) when using elixir in laravel 5?
所以我很喜欢灵药
但是当我 运行 gulp 观看和写入 css(准确地说是 scss)时,它在保存几次后崩溃,因此迫使我开始gulp再看一遍。这让我发疯,几乎到了无法完成工作的地步。
我看过 Whosebug 上有类似问题的人,但没有成功。我还找到了一些这样的文章:http://maximilianschmitt.me/posts/prevent-gulp-js-from-crashing-on-error/
但是他们的解决方案已经过时了,或者我太笨了无法正确使用他们的解决方案。很有可能是后者...
这是我的 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 手表。刺激。
解决方案(不优雅,但有效)
首先,我的 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 管道工
$ npm install --save-dev gulp-plumber
- 我需要 gulp 水管工和基础 gulp 对我的 gulp 文件的依赖
- 我定义了一个空的默认任务,不然gulp不跟我玩...
- 我创建了一个名为 "watch" 的 gulp 任务,否则
gulp watch
将无法像以前那样在命令行中工作。
- 我定义了
gulp.watch()
来制作 gulp,嗯,看?
- 如果我的长生不老药起作用了,我在最后附加了
.pipe(plumber());
。管道工是防止 gulp 观察者因错误 而崩溃的东西
所以,为了方便您,将下面的代码复制粘贴到您的 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());
});
请注意,当您 运行 gulp watch
时,您将在命令行/终端中收到错误消息。忽略它。尝试保存一个 scss 或 js 文件,重新加载 brwoser,你会看到 gulp 并且 elixir 正在做他们的工作。
错误:
收获!!!
- 运行
gulp
现在什么都不做。
- 如果您犯了语法错误,观察程序会停止,直到您修复错误。但是,您不必手动重新启动它。说,如果你错过了;在你的 scss 中,它会在你添加 ; 后立即再次工作。并保存。
注意:这是一个 hack。不是很优雅。但它有效。根据 contra 在这个线程中: https://github.com/gulpjs/gulp/issues/71 gulp v.4.x.x 应该解决 gulp watch crashing on finding an error
的问题
所以我很喜欢灵药
但是当我 运行 gulp 观看和写入 css(准确地说是 scss)时,它在保存几次后崩溃,因此迫使我开始gulp再看一遍。这让我发疯,几乎到了无法完成工作的地步。
我看过 Whosebug 上有类似问题的人,但没有成功。我还找到了一些这样的文章:http://maximilianschmitt.me/posts/prevent-gulp-js-from-crashing-on-error/
但是他们的解决方案已经过时了,或者我太笨了无法正确使用他们的解决方案。很有可能是后者...
这是我的 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 手表。刺激。
解决方案(不优雅,但有效)
首先,我的 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 管道工
$ npm install --save-dev gulp-plumber
- 我需要 gulp 水管工和基础 gulp 对我的 gulp 文件的依赖
- 我定义了一个空的默认任务,不然gulp不跟我玩...
- 我创建了一个名为 "watch" 的 gulp 任务,否则
gulp watch
将无法像以前那样在命令行中工作。 - 我定义了
gulp.watch()
来制作 gulp,嗯,看? - 如果我的长生不老药起作用了,我在最后附加了
.pipe(plumber());
。管道工是防止 gulp 观察者因错误 而崩溃的东西
所以,为了方便您,将下面的代码复制粘贴到您的 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());
});
请注意,当您 运行 gulp watch
时,您将在命令行/终端中收到错误消息。忽略它。尝试保存一个 scss 或 js 文件,重新加载 brwoser,你会看到 gulp 并且 elixir 正在做他们的工作。
错误:
收获!!!
- 运行
gulp
现在什么都不做。 - 如果您犯了语法错误,观察程序会停止,直到您修复错误。但是,您不必手动重新启动它。说,如果你错过了;在你的 scss 中,它会在你添加 ; 后立即再次工作。并保存。
注意:这是一个 hack。不是很优雅。但它有效。根据 contra 在这个线程中: https://github.com/gulpjs/gulp/issues/71 gulp v.4.x.x 应该解决 gulp watch crashing on finding an error
的问题