Gulp 吞下LiveReload以获取PHP文件,不会';刷新浏览器
为WordPress主题构建一个gulpfile.js。目前,所有的JS和CSS都工作得很好,livereload正在重新加载CSS/JS更改 但我还想在PHP文件更改时刷新浏览器。我做了一些搜索,发现了我在gulpfile.js中使用的以下片段Gulp 吞下LiveReload以获取PHP文件,不会';刷新浏览器,gulp,livereload,Gulp,Livereload,为WordPress主题构建一个gulpfile.js。目前,所有的JS和CSS都工作得很好,livereload正在重新加载CSS/JS更改 但我还想在PHP文件更改时刷新浏览器。我做了一些搜索,发现了我在gulpfile.js中使用的以下片段 gulp.task('watch', function(){ // Listen on port 35729 for LiveReload server.listen(35729, function (err) {if (err) {
gulp.task('watch', function(){
// Listen on port 35729 for LiveReload
server.listen(35729, function (err) {if (err) {return console.log(err) };
gulp.watch("assets/scss/**/*.scss", ['sass']); // Watch and run sass on changes
gulp.watch("assets/js/_*.js", ['javascripts']); // Watch and run javascripts on changes
gulp.watch("assets/img/*", ['imagemin', 'svgmin']); // Watch and minify images on changes
gulp.watch('**/*.php').on('change', function(file) {
util.log('PHP FILES CHANGED!');
server.changed(file.path);
});
});
});
每当我更改PHP文件时,我都可以在控制台中看到“PHP文件已更改!”,但livereload不会更新浏览器。我遗漏了什么?做了一些进一步的研究和测试,结果证明使用tiny lr没有任何意义,因为gulp livereload什么都做。因此,我改变了我的任务,通过
.pipe(livereload())进行重新加载代码>–并将我的手表任务更改为以下内容:
gulp.task('watch', function(){
var server = livereload();
gulp.watch('**/*.php').on('change', function(file) {
server.changed(file.path);
util.log(util.colors.yellow('PHP file changed' + ' (' + file.path + ')'));
});
gulp.watch("assets/scss/**/*.scss", ['sass']); // Watch and run sass on changes
gulp.watch("assets/js/_*.js", ['javascripts']); // Watch and run javascripts on changes
gulp.watch("assets/img/*", ['imagemin', 'svgmin']); // Watch and minify images on changes
});
有一个简短的解决方案可能对那些使用它的人有用。有一种重新加载
方法可以触发。像这样:
gulp.task('watch', function(){
livereload.listen();
gulp.watch('source/*.php', livereload.reload);
});
谢谢一段时间以来,我一直在尝试让livereload处理php文件,这非常有效。当人们搜索第一个答案对我不起作用时,你应该将你的答案标记为正确,以提高答案的正确性,但这一个对我不起作用。也不太具侵入性,似乎与吞咽习惯更为一致。我会投票支持这一正确答案。