确保在其他所有内容之前执行Meteor脚本(在客户端上)

时间:2016-03-25 10:00:11

标签: javascript meteor initialization startup deferred-execution

我猜Meteor强迫其用户执行命令启发式而不是提供import语义的主题已经讨论过死亡。

尽管如此,我认为至少应该有一种方法可以100%确定某些脚本可以在其他所有脚本之前运行。据我所知,由于加载顺序启发式在其他所有方面都是深度优先的(即使你在不同的地方有多个lib个文件夹,因此出于某种原因会先运行更深入的文件夹),基本上有没有办法确保某些脚本在其他所有脚本之前执行,无论它有多深,除非你把它放在一个包中。

这是对的吗?在即将发布的版本中是否有任何可以预期的情况可以解决?

现在,我正在考虑编写一个小load-order-util包,它至少允许延迟执行回调,直到startup并且在给定一组全局定义的符号准备好之后,如下所示:

Global.dependsOnSymbols = function(symbolNameOrNames, cb) { ... };

有更好的建议吗?

1 个答案:

答案 0 :(得分:0)

你可以通过阅读来实现:

How do I change the order in which Meteor loads Javascript files?

In Meteor JS, how to control Javascript load order in relation to DOM load order? For animations

就像现在的情况一样,最好坚持框架本身提供的加载约定。

无论如何,upcoming 1.3 release应该最终解决提供ES2015模块支持的问题。