0

TL,DR: 如何独立于 Meteor 关于字母顺序的假设加载 css 和 javascript 文件(这与它在实践中的工作方式相去甚远。)

Stackoverflow 告诉我这个问题可能是主观的,但我希望不是。

Meteor 根据字母顺序(和其他规则)加载文件。
因此,为了强制它按我想要的顺序加载 CSS 和 JS 文件,我必须以指示加载顺序的数字开头。如果我有jquery.jsand bootstrap.js, Meteor 会bootstrap.js在之前加载jquery.js。但是 bootstrap 依赖于 jquery,所以必须先加载 jquery。

为了解决这个问题,选项有:
1. 将文件放在public目录中并手动加载它们。但这不起作用,因为 Meteor 似乎正在发送具有text/htmlMIME 类型的文件。
2. 创建一个 Meteor 包并从那里指定加载顺序。我发现这就像用锤子击打苍蝇只是为了加载 CSS 和 Javascript。
3. 在每个文件前加上一个数字。在前面的示例中,要在引导之前加载 jquery,请将文件重命名为1.jquery.jsand2.bootstrap.js这可以工作并且很乏味,但至少我可以按照我想要的方式加载文件。

我是 Meteor 的新手,所以我想知道是否有推荐的最佳实践。我正在考虑将 AMD 用于 javascript,但这仅限于 javascript。

4

1 回答 1

1

这是一个有趣的问题,这可能是制作 Meteor 应用程序的陷阱之一。

您已经提到了所有可用的解决方案,例如创建显式包或重命名文件。

我认为最好的方法是使用气氛包。例如,如果您添加引导程序,jquery 是它的依赖项,因此它将始终首先加载。大多数涉及加载顺序的 js 库通常都在环境中。

如果没有大气包,另一种最好的方法是在js文件前面放一个数字来指示加载顺序,虽然我不确定我会说是乏味的。

一件事是当您使用/public文件映射到的文件夹时/,您可以按照您想要的顺序手动加载 js 文件(在根 html 文件中使用 /public。Meteor 返回 text/html MIME 类型作为其版本找不到 404 文件错误。这种方法虽然有点麻烦,因为文件在生产中是分开的,如果一个或另一个不加载可能会导致麻烦。

于 2015-02-05T11:48:04.913 回答