首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel Mix BrowserSync重新加载

Laravel Mix BrowserSync重新加载
EN

Stack Overflow用户
提问于 2019-08-20 16:50:24
回答 1查看 1.6K关注 0票数 0

我正在使用Laravel Mix和React。我配置了在850毫秒reloadDelay: 850后重新加载BrowserSync,但有时Webpack编译我所有的JS文件需要超过850毫秒。我的页面在所有文件编译完成之前被重新加载,所以我每次都必须手动刷新我的页面。

除了reloadDelay选项之外,是否有其他方法可以配置Laravel Mix,使其仅在编译完成后重新加载?我不想进一步增加我的reloadDelay值。

代码语言:javascript
复制
mix.react('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .browserSync({
     proxy: 'http://127.0.0.1:8000',
     reloadDelay: 850,
     files: [
        'resources/js/**/*.js'
     ]
});
EN

回答 1

Stack Overflow用户

发布于 2020-05-11 02:54:00

我创建了一个与浏览器同步版本2.26.7一起工作的设置。我还发现文档中的这一部分非常有用,browser sync recipes。你只需输入browser-sync recipe {recipe-name}即可。

browser-sync recipe webpack.react-transform-hmr

假设您已经在计算机上全局安装了browser-sync

代码语言:javascript
复制
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,
  },
});

下面是我如何将react应用程序与Laravel Nova连接的完整代码片段(我使用的是Laravel Nova,所以我的文件路径看起来略有不同)

代码语言:javascript
复制
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实时重载工作就像一个护身符。

快乐编码=)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57569946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档