gpt4 book ai didi

meteor - 关于 Meteor 文件加载顺序的澄清

转载 作者:行者123 更新时间:2023-12-02 01:23:29 26 4
gpt4 key购买 nike

从文档以及我能找到的所有答案来看, meteor 文件似乎是按深度优先加载的,然后按字母顺序加载的。我找不到任何关于相同深度的文件是否按字母顺序加载(与相同深度的所有其他文件相比)、在其文件夹内按字母顺序加载但优先考虑父文件夹的字母顺序或其他变体的详细说明。

假设我们有以下文件:

b/file0.js
b/d/file3.js
c/file2.js
c/a/file1.js

它们的加载顺序是什么?

对文档的一种解释是顺序为 file1, file3, file0, file2 (深度为 2 的文件首先按字母顺序加载,然后是深度为 1 的文件)

另一种可能是file3, file0, file1, file2(b 目录中的文件在 c 子目录中的文件之前加载)。我猜不是这样,因为文档说最深子目录中的文件首先加载。

最后,我还可以看到 file3, file1, file0, file2 发生(如果深度相同,b 中的文件会先于 c 中的文件加载)

最佳答案

讨厌的加载顺序函数定义在/tools/packages.js中。逐步进行以下比较:

  • .html 文件在非 html 文件之前加载,
  • 名为 main.* 的文件在所有其他文件之后加载,
  • 路径中任何位置包含 lib 的文件都会先于不包含 lib 的文件加载,
  • 首先加载路径中包含更多段的文件,
  • 文件按字母顺序加载。

列表中较高的规则优先于较低的规则,因此例如非主 .html 文件会先于非 html 主文件加载。在你的情况下,文件

b/file0.js
b/d/file3.js
c/file2.js
c/a/file1.js

首先分成具有相同数量路径段的组:

b/d/file3.js
c/a/file1.js
---
b/file0.js
c/file2.js

然后,在每个组中,整个路径按字母顺序排序。

<小时/>

让我们看一个更复杂的示例:

x/lib/0.js
a/index.html
a/main.js
a/f.js
b/lib/echo.html
b/lib/main.js
k_2.js
k.js
c.js
lib/widget.html
d/e.js

首先,将文件分为 .html 和非 html 组,html 文件放在前面:

a/index.html
b/lib/echo.html
lib/widget.html
----------
x/lib/0.js
a/main.js
a/f.js
b/lib/main.js
k_2.js
k.js
c.js
d/e.js

然后,在两个组中,将 main. 文件放在最后:

a/index.html
b/lib/echo.html
lib/widget.html
----------
x/lib/0.js
a/f.js
k_2.js
k.js
c.js
d/e.js
-----
a/main.js
b/lib/main.js

现在,在每个创建的子组中,将文件分为路径中包含 lib 的文件和不包含 lib 的文件:

b/lib/echo.html
lib/widget.html
-----
a/index.html
----------
x/lib/0.js
-----
a/f.js
k_2.js
k.js
c.js
d/e.js
----------
b/lib/main.js
-----
a/main.js

在您现在拥有的组中,根据路径段的数量创建子组。

b/lib/echo.html
-----
lib/widget.html
----------
a/index.html
----------
x/lib/0.js
----------
a/f.js
d/e.js
-----
k_2.js
k.js
c.js
----------
b/lib/main.js
----------
a/main.js

在最后这些组中,按字母顺序对完整路径进行排序:

b/lib/echo.html
-----
lib/widget.html
----------
a/index.html
----------
x/lib/0.js
----------
a/f.js
d/e.js
-----
c.js
k.js
k_2.js
----------
b/lib/main.js
----------
a/main.js

希望这有帮助。

关于meteor - 关于 Meteor 文件加载顺序的澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22260038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com