加速Meteor.js中的自动重新加载

在Meteor.js中保存新的文件后,服​​务器将重新启动,浏览器将重新加载窗口。

问题:有时在保存文件后重新加载需要比平时更长的时间,而且这看起来是随机的。 有没有办法更快地触发自动重新加载?

看来,服务器很快重启,但浏览器重新加载更为缓慢。

Meteor服务器重新启动后,网页在30秒内变为无响应状态,“networking”选项卡显示websocket挂起…

我在Mac OSX上的Node.js v0.10.22上使用Meteor 0.7.0.1和Meteorite 0.6.16,连接到远程的MongoDB服务器。

在这里输入图像描述

如果您的项目很大,自动重新加载需要时间。 meteor基本上已经重build了javascript了。 有很多东西可以影响所花费的时间。

它的一些基础是:

  • 项目越大,js文件/软件包的使用时间就越长
  • 如果您禁用了networking套接字,服务器似乎需要更长时间才能重新启动
  • 如果使用--production作为标志,重build需要更长的时间,但在浏览器中加载速度会更快
  • 如果您通过cdn使用外部css /字体,并且可能需要一些时间来重新下载这些文件,这取决于您的连接。 尝试在Chrome开发者控制台中检查您的networking选项卡,以查看是否有任何特定的文件需要一段时间,并临时将其临时托pipe在本地。
  • 如果在错误发生后重新加载热代码,meteor试图从错误中恢复,那么可能会有轻微的延迟。

还有一些其他的东西。 如果你使用Meteor UI和--release标志,一些内部版本会有内存泄漏,而且你的热门代码重新加载得越慢,越慢。

如果你在Windows上开发,有一些热代码重新加载的问题。 meteor在Windows是非官方的,你有时必须按CTRL + C,并重新启动它,以加快启动。

除了加强你的计算机或者将运行在Meteor.startup东西移动到cron工作之外,你可以做的事情并不是很多。 每个热代码重新加载将重做您的Meteor.startup中的任务。

使用热代码重新加载最困扰我的是来自Google字体的字体,通过@import css语句。 有时,谷歌不会很快提供字体,特别是当我不断重新加载它们。 我暂时禁用他们/本地托pipe他们。 我不在本地生产,因为不同的浏览器有时在Windows上提供模糊的字体。

我重新启动了一个在2014年运行良好的旧项目,但是发现启动和重新启动非常慢(超过30秒)。 (可能更新的节点或meteor触发了这个。)

我注意到这个项目的.meteor/release包含了METEOR@0.9.3

我跑了:

 meteor update 

在项目的根文件夹中。

我的发行版文件现在包含METEOR@1.1.0.3 ,我的许多软件包都被更新了。 现在重新启动明显更快(约10秒)!


顺便说一下,我将MONGO_URL指向我的本地主机上的mongodb,所以当我启动应用程序时,meteor不需要启动一个新的mongodb。

似乎用1.3来解决,但现在是在testing版本。

 meteor update --release METEOR@1.3-modules-beta.8 

从6-10s到1-2s。