我创建了一个适用于浏览器同步版本 2.26.7 的设置。我还发现文档的这一部分非常有用,browser sync recipes。您只需输入browser-sync recipe {recipe-name}。
即browser-sync recipe webpack.react-transform-hmr
假设您已在您的计算机上全局安装了 browser-sync。
mix.browserSync({
watch: true,
files: [
'public/js/**/*',
'public/css/**/*',
'public/**/*.+(html|php)',
'resources/views/**/*.php'
],
open: "http://my-site.local/",
browser: "google chrome",
reloadDelay: 1000,
proxy: {
target: "http://my-site.local/",
ws: true,
},
});
下面有完整的代码 sn-p 关于我如何将我的 react 应用程序与 Laravel Nova 连接(我使用 Laravel Nova,所以我的文件路径看起来略有不同)
const mix = require('laravel-mix');
require('laravel-mix-imagemin');
// Copy and Convert images
mix.copy('resources/images', 'public/images')
.imagemin('images/**/*');
// Compile and Copy css custom style files
mix.sass('resources/sass/form.scss', 'public/css')
.minify('public/css/form.css');
mix.sass('resources/sass/main.scss', 'public/css')
.minify('public/css/main.css');
mix.sass('resources/sass/nav.scss', 'public/css')
.minify('public/css/nav.css');
// Copy css vendor files
mix.copy('resources/css/vendor/bootstrap-grid.min.css', 'public/css/vendor');
mix.copy('resources/css/vendor/normalize.css', 'public/css/vendor')
.minify('public/css/vendor/normalize.css');
// Copy js vendor files
mix.copy('resources/js/vendor/modernizr-3.8.0.min.js', 'public/js/vendor');
mix.copy('resources/js/vendor/jquery-3.5.1.slim.min.js', 'public/js/vendor');
mix.copy('resources/js/vendor/jquery-3.4.1.min.js', 'public/js/vendor');
// Compile react
mix.react('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');
mix.browserSync({
watch: true,
files: [
'public/js/**/*',
'public/css/**/*',
'public/**/*.+(html|php)',
'resources/views/**/*.php'
],
open: "http://my-site.local/",
browser: "google chrome",
reloadDelay: 1000,
proxy: {
target: "http://my-site.local/",
ws: true,
},
});
这将在http://localhost:3000 上打开您的浏览器,当您保存更改时,您的浏览器应该会重新加载。
注意!!当您在http://my-site.local/ 上打开浏览器选项卡时,我无法让实时重新加载工作,但是如果我打开http://my-site.local:3000,实时重新加载就像一个魅力。
快乐编码 =)