我们正在使用trackjs.com代码来帮助我们检测javascript错误。我们希望trackjs代码报告任何javascript代码中的所有错误。这要求首先加载trackjs代码。
我知道它违反了一般的流星加载顺序,但是我们不希望隐藏任何javascript问题,无论错误在哪里。
我们尝试将compatibility
文件夹中包含的trackjs.com代码包含在<head>
块中并进行硬编码。这两种方法都导致代码最后被加载。
建议?
答案 0 :(得分:1)
子目录中的文件在父目录中的文件之前加载,因此最先加载最深子目录中的文件,最后加载根目录中的文件。
在目录中,文件按文件名的字母顺序加载。
如上所述排序后,名为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如何为应用提供服务。这将仅是客户端,并且容易发生流星更新冲突。