解决homestead/vagrant中运行npm run watch,文件更新后不会实时编译的问题

想尝试点新东西,所以想在vagrant虚拟机中进行laravel+vue的开发。差不多填坑填了一个星期吧。
一开始纠结到底应该在win中进行vue编译,还是在虚拟机中编译,后来想想,官方的homestead中都集成了node了,应该很明显(?)了吧。
但是在虚拟机中运行npm run watch,后,设置

mix.browserSync({
    proxy : 'basic',
    open : false    //不打开浏览器。虚拟机中打不开。。。
})

只设置这两项,默认会监听http://localhost:3000
然后转发到你的 设置的proxy。但是在win下编辑vue文件时,不会自动编译。尝试在虚拟机中编辑并保存时,是可以实时编译的。
找到一些资料,有兴趣的可以去看下
https://github.com/JeffreyWay/laravel-mix/issues/780
然后其实在并不需要如上边那个连接里说的那样麻烦。因为在laravel的文档里也说到了这个问题

[ Laravel 5.6 文档 ] 前端开发 —— 使用进阶:通过 Laravel Mix 编译前端资源

#你可能会发现文件变更的时候特定环境的 Webpack 不会更新,如果你遇到了这样的问题,可以考虑使用 watch-poll 命令:
npm run watch-poll

也就是说运行 npm run watch-poll命令就可以了【在win中编码,而在虚拟机中实时编译】

当然还有另外一个问题
虚拟机中npm run watch-poll占用cpu过高

发表评论

电子邮件地址不会被公开。 必填项已用*标注