新手问题 rails 6 webpacker 慢的要死

canonpd · 2019年06月25日 · 最后由 SpiderEvgn 回复于 2019年08月05日 · 3506 次阅读

rails 6 一出来就第一时间将项目升级了。公司项目现在使用的是 6.0.0.rc1 版本。6 最大的区别,就是改用了 webpacker

用了这个,虽然 yarn 装包方便了。但这个玩意,每次改个 js 代码,刷新 2~3 秒才出来。这么慢,咋玩?严重影响开发体验,我的机器配置也不差,开发怎么都够了。

就这玩意,死慢死慢的。。。

平常开发,自己用 webapck 写 vue、react,也没有这么慢啊。

请教下各位,你们用 webpacker 这玩意的时候,不觉得慢吗?有没有好的解决方法,还是只能忍受?

把 hrm 打开,然后使用./bin/webpack-dev-server 呢?

开 webpack-dev-server。

Rei 回复

不错不错,秒刷了。

原来官方文档有,查到了。

感谢,节省大量开发时间了。以前写完 js,我简直要泡杯茶,回来再看它编译完了没有。。。

monsterooo 回复

3Q 成功了

canonpd 回复

不客气,hrm 开启可以参考一下之前我发的这个 https://ruby-china.org/topics/38631

Rei 回复

我开发环境用的 docker,单独起了一个 container 用来跑 /bin/webpack-dev-server,每次更新 js 都需要 compile 三十几秒。笔记本是 18 年 顶配的 Mac Pro 性能应该没问题,请问有什么解法吗?

SpiderEvgn 回复

如果每次修改都要 30 秒可能 dev server 没生效,web 进程需要知道 webpack-dev-server 存在才会将编译交给 dev server,在 docker 下要额外配置。

可以参考这里 https://github.com/getcampo/campo/blob/master/docker-compose.yml

启动 30 秒是 volumn IO 性能低下的问题,我用 docker-sync 解决。https://github.com/EugenMayer/docker-sync

Rei 回复

受教了,多谢~

SpiderEvgn 回复

即使 webpack-dev-server 配置正确了,受 IO 影响还是很慢的,需要使用 docker-sync。

SpiderEvgn Rails 6.0 详细介绍切换 Assets Pipeline 到 Webpacker 提及了此话题。 08月02日 16:15

我这两天玩 docker 也碰到问题了。

在 docker 中运行,views 500 多 ms。加载页面慢的要死了

同一个项目,同一个页面,在本机中直接运行,只有 90ms 多了。

不知道是不是也是这个问题导致的?我先照着你的配置参考处理下试试看

canonpd 回复

我也是这样,正在尝试 docker-sync

SpiderEvgn 回复

Docker 搞得我玩的怀疑人生,这么慢,完全没有实用价值了。他们说是 Mac 的坑,我也搞不清楚

14 楼 已删除

Mac 的确背了锅,因为文件系统不同。Docer for Mac 用的是 osxfs 共享文件系统,osxfs 在做 Mac 到 Linux 的文件同步的时候因为文件系统的各种差异导致速度非常慢(这也是为什么在 Linux 上跑 docker 速度就快很多的原因),具体详见官方介绍。简单来说,docker-sync 就是通过一系列手段(主要是 Unison)优化了 Mac 的 fs 到 Linux 的 fs 的文件同步。docker-sync 的使用还是比较简单的,安装 gem,配置 yml,然后 docker-sync start 就可以了,建议 Mac 用户们直接拿来用。(个人看法,欢迎指正)

16 楼 已删除
需要 登录 后方可回复, 如果你还没有账号请 注册新账号