Browsersync gulp 任务不会注入 CSS(或者 gulp 不会 运行 后台另一个监视任务)
Browsersync gulp task will not inject CSS (or gulp won`t run another watch task in background)
似乎监视任务停止在 browserSync.init。例如,我可以通过 gulp cssInkject 单独调用所有任务 运行,但它们赢得了 t run when gulp watch is run. Browsersync will give "File event [change] : resources/assets/styles/modules/_breadcrumbs.css" notification but won
t 运行 捆绑 css 的任务并且不会注入 CSS(流)。
下面是代码:
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 虚拟机 (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');
});
基本上将 'gulp' 添加到 'watch' 就解决了这个问题,这更奇怪,因为它只在本地 windows 环境中与 'watch' 一起使用,而不是在 homestead laravel.
似乎监视任务停止在 browserSync.init。例如,我可以通过 gulp cssInkject 单独调用所有任务 运行,但它们赢得了 t run when gulp watch is run. Browsersync will give "File event [change] : resources/assets/styles/modules/_breadcrumbs.css" notification but won
t 运行 捆绑 css 的任务并且不会注入 CSS(流)。
下面是代码:
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 虚拟机 (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');
});
基本上将 'gulp' 添加到 'watch' 就解决了这个问题,这更奇怪,因为它只在本地 windows 环境中与 'watch' 一起使用,而不是在 homestead laravel.