Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor按什么顺序包含我的js文件_Javascript_Meteor - Fatal编程技术网

Javascript Meteor按什么顺序包含我的js文件

Javascript Meteor按什么顺序包含我的js文件,javascript,meteor,Javascript,Meteor,我有一个js文件: function library_f() { } function some_f() { library_f(); } function another_f() { library_f(); } 但是代码看起来很难看,我决定将我的js文件分为三部分: one.js: function library_f() { } two.js: function some_f() { library_f(); } three.js: function another_

我有一个js文件:

function library_f() {
}

function some_f() {
  library_f();
}

function another_f() {
  library_f();
}
但是代码看起来很难看,我决定将我的js文件分为三部分:

one.js:

function library_f() {
}
two.js:

function some_f() {
  library_f();
}
three.js:

function another_f() {
  library_f();
}
但现在我发现了一个错误

library_f() is not defined
如何设置包含js文件的顺序?

来自:

  • 首先加载应用程序根目录下lib目录中的文件。 与main.*匹配的文件在加载其他文件之后加载

  • 子目录中的文件在父目录中的文件之前加载,因此最深子目录中的文件首先加载(在lib之后),根目录中的文件最后加载(除了main.*)

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

这些规则堆叠在一起,例如,在lib中,文件仍然按字母顺序加载;如果有多个名为main.js的文件,则子目录中的文件会更早加载

但看起来这些函数无法访问,因为它们不是全局函数。在meteor中,每个文件的变量/函数不能被另一个文件访问,除非该变量或函数是全局的

因此,您需要以这种方式声明函数:

library_f = library_f() {
...
}
以便其他文件可以访问它。变量也是如此:

var x = true; //Not accessible by other files
x = true; //Accessible by other files

var dothis = function () {...} //Not accessible by other files
dothis = function() {..} //Not accessible by other files
function dothis() {..} //Not accessible ny other files

Meteor会收集所有JS文件并将它们放在一个文件中,而顺序并不是你可以控制的

我认为这里的问题是:你从哪里调用函数?如果他们马上就可以自动执行,那么你是对的,订单可能很重要。但是,Meteor通常将函数加载到DOM中,然后运行它们以响应某些事件,如
Meteor.startup(回调)
Template.page.rendered(回调)
。在这些示例中执行时,您的所有JS文件都将被加载,并且您的函数都应该准备就绪,可以按照您喜欢的顺序执行


如果您不想在创建它们之后立即运行它们,那么值得在浏览器控制台中检查一下,您可以在页面加载后看到这些函数都存在于DOM中。键入
library\u f
并查看返回的内容。

您还可以查看以了解更多信息如果您想确保您的文件管理器或文件夹是第一个加载的,只需在文件名中添加下划线,这样将是第一个加载的。