我们需要在一开始就加载某些javascript文件

时间:2014-03-03 23:48:30

标签: meteor

我们正在使用trackjs.com代码来帮助我们检测javascript错误。我们希望trackjs代码报告任何javascript代码中的所有错误。这要求首先加载trackjs代码。

我知道它违反了一般的流星加载顺序,但是我们不希望隐藏任何javascript问题,无论错误在哪里。

我们尝试将compatibility文件夹中包含的trackjs.com代码包含在<head>块中并进行硬编码。这两种方法都导致代码最后被加载。

建议?

1 个答案:

答案 0 :(得分:1)

取自official documentation

  • 子目录中的文件在父目录中的文件之前加载,因此最先加载最深子目录中的文件,最后加载根目录中的文件。

  • 在目录中,文件按文件名的字母顺序加载。

  • 如上所述排序后,名为lib的目录下的所有文件都会先移动(保留其顺序)。

  • 最后,所有匹配main.*的文件都会在其他所有文件之后移动(保留其顺序)。

所以你应该将它们放在lib目录中。如果将其放在server/lib中,它将可供服务器使用,或仅在client/lib客户端可用。但是如果将它放在一个公共lib文件夹中,那么客户端和服务器都可以使用它。

话虽这么说,将这些代码放入自己的包中通常是个更好的主意。软件包具有更好的加载订单管理,如文档的relevant section中所述。

最后,您可能还希望查看http://observatoryjs.com/哪些目标可以实现与trackjs类似的解决方案,并且它具有您可以在http://atmosphere.meteor.com

中搜索和添加的原生流星程序包

更新:

这些解决方案可以在meteor的原生代码之后以及之前和任何其他第三方之前放置跟踪。

为了能够在其他所有事情之前真正注入trackjs,可能有以下几种方法:

https://github.com/arunoda/meteor-fast-render/blob/master/lib/server/inject.js#L52是快速渲染包改变head的内容以注入任意脚本的方式。您可以使用此技术在最开始注入trackjs。

您可以直接破解https://github.com/meteor/meteor/blob/devel/packages/webapp/webapp_server.js meteor如何为应用提供服务。这将仅是客户端,并且容易发生流星更新冲突。