Browsersync gulp任务不会注入CSS(或者gulp不会在后台运行另一个监视任务)
似乎监视任务在browserSync.init停止。例如,我可以通过gulp cssInkject调用它们来分别运行所有任务,但当gulp watch运行时,它们不会运行。Browsersync将发出文件事件[更改]:resources/assets/styles/modules/_breadcrumbs.css通知,但不会运行绑定css的任务,也不会注入css流 代码如下:Browsersync gulp任务不会注入CSS(或者gulp不会在后台运行另一个监视任务),gulp,browser-sync,Gulp,Browser Sync,似乎监视任务在browserSync.init停止。例如,我可以通过gulp cssInkject调用它们来分别运行所有任务,但当gulp watch运行时,它们不会运行。Browsersync将发出文件事件[更改]:resources/assets/styles/modules/_breadcrumbs.css通知,但不会运行绑定css的任务,也不会注入css流 代码如下: var gulp = require('gulp'), watch = require('gulp-watch'), b
var gulp = require('gulp'),
watch = require('gulp-watch'),
browserSync = require('browser-sync').create();
gulp.task('watch', function() {
browserSync.init(null, {
notify: false,
browser: "chrome",
server: {baseDir: "app"},
port: 8000
});
watch('./app/*.html', function() {
browserSync.reload();
});
watch('./app/assets/styles/**/*.css', function() {
gulp.start('cssInject');
});
watch('./app/assets/scripts/**/*.js', function() {
gulp.start('scriptsRefresh');
});
});
gulp.task('cssInject', ['styles'], function() {
return gulp.src('./app/temp/styles/styles.css')
.pipe(browserSync.stream());
});
gulp.task('scriptsRefresh', ['scriptsBundle'], function() {
browserSync.reload();
});
gulp.task('styles', function() {
return gulp.src('./app/assets/styles/styles.css')
.pipe(postcss([cssImport, mixins, cssvars, nested, hexrgba, autoprefixer]))
.on('error', function(errorInfo) {
console.log(errorInfo.toString());
this.emit('end');
})
.pipe(gulp.dest('./app/temp/styles'));
});
我正在Ubuntu VM homestead/laravel中运行它,如果有什么不同的话。试试这个
gulp.task('cssInject', ['styles'], function() {
browserSync.stream();
});
我不知道它为什么有效,但它有效:
gulp.watch('./app/*.html', function() {
browserSync.reload();
});
gulp.watch('./app/assets/styles/**/*.css', function() {
gulp.start('cssInject');
});
gulp.watch('./app/assets/scripts/**/*.js', function() {
gulp.start('scriptsRefresh');
});
基本上,在“watch”中添加“gulp”解决了这个问题,这个问题甚至更奇怪,因为它只在本地windows环境中使用“watch”,而在homestead laravel上不使用