如何解决Gulp 4-任务无法通过Browsersync正常运行
- Gulp本地v4.0.2,CLI v2.3.0
- Browsersync v2.26.13
gulpfile.js
:
'use strict'
const gulp = require('gulp')
const concat = require('gulp-concat')
const babel = require('gulp-babel')
const uglify = require('gulp-uglify')
const browserSync = require('browser-sync')
require('dotenv').config()
const server = browserSync.create()
function js() {
return gulp
.src(['./resources/js/main.js','./resources/js/theme.js'])
.pipe(
babel({
presets: ['@babel/env'],})
)
.pipe(uglify())
.pipe(concat('app.min.js'))
.pipe(gulp.dest('./public/assets/js/'))
}
function serve(done) {
server.init({
proxy: `http://localhost:${process.env.PORT}`,port: 3001,})
done()
}
function reload(done) {
server.reload()
done()
}
function watch() {
return gulp.watch('./resources/js/*.js',gulp.series(js,reload))
}
const dev = gulp.series(js,serve,watch)
exports.default = dev
此设置与Gulp文档中的this example非常相似。
在localhost:3000
上代理快速服务器,并监视JavaScript文件的更改。
问题
当我更改位于./resources/js/
的任何JavaScript文件时,浏览器重新加载未完成。我可以看到 js
任务在创建./public/assets/js/app.min.js
文件时正常工作。
当我按下gulp
命令时,它将作为默认任务成功运行任务 dev
(gulp.series(js,watch)
),并开始监视更改。更改并保存JavaScript文件后,js
和reload
任务开始运行。但是浏览器重新加载卡住了,什么也没有发生。
[15:39:16] Starting 'js'...
[15:39:16] Finished 'js' after 61 ms
[15:39:16] Starting 'reload'...
[15:39:16] Finished 'reload' after 2.03 ms
[browsersync] Reloading browsers...
解决方法
花费了数小时之后,我终于发现我的节点服务器有问题。我在启用esm
加载程序的情况下运行它。
我正在像这样运行服务器:
nodemon -r esm app.js
解决方案
当我以这种方式启动快递服务器时,一切都按预期进行:
nodemon app.js
但是,我仍然不确定这是最佳解决方案。
我不知道为什么启用esm
会导致麻烦并阻止Browsersync重新加载。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。