Javascript 如何在meteorjs上对js文件进行排序

Javascript 如何在meteorjs上对js文件进行排序,javascript,meteor,Javascript,Meteor,我有两个js文件: validate.js login.js login.js需要validate.js中的函数,因此login.js必须在validate.js之后调用。 但在meteorjs中,我不知道如何像那样分类。因为我知道client/中的所有js文件都将被加载。这就是结果: login.js validate.js 请帮助如何排序这个js文件 更新 好的,我现在可以对js文件进行排序,但我不能从validate.js调用函数 这是我的validate.js: function f

我有两个js文件:

validate.js
login.js
login.js需要validate.js中的函数,因此login.js必须在validate.js之后调用。 但在meteorjs中,我不知道如何像那样分类。因为我知道client/中的所有js文件都将被加载。这就是结果:

login.js
validate.js
请帮助如何排序这个js文件

更新 好的,我现在可以对js文件进行排序,但我不能从validate.js调用函数 这是我的validate.js:

function firstValidator(){
    this.isTextValidate = {
        text : function(text){
            return true;
        },
        password: function(password){
            return true;
        },
        date: function(date){
            return true;
        }
    }
}
这是我的login.js

var isValid = new firstValidator();
Template.cust_login.events({
    'click button':function(){
        login();

    },
    'keyup input#inputUserLogin': function () {
         alert(isValid.isTextValidate.text("text"));
    },
    'keyup input#inputUserPassword': function () {

    }

});
它的错误在于:

var isValid = new firstValidator();
Uncaught ReferenceError: firstValidator is not defined 

为什么会这样?如何解决这个问题,这样我就可以在另一个js中使用firstValidator(),Meteor按字母顺序加载同一目录中的文件。首先加载较深子目录中的文件。
lib/
目录中的文件在加载其他文件之前加载。名为
main.*
的文件最后加载。在您的情况下,我会将
validate.js
放在
client/lib/
中。如果希望验证文件在客户端和服务器上可用,请将其放在
lib/
中。

Meteor按字母顺序加载同一目录中的文件。首先加载较深子目录中的文件。
lib/
目录中的文件在加载其他文件之前加载。名为
main.*
的文件最后加载。在您的情况下,我会将
validate.js
放在
client/lib/
中。如果希望验证文件在客户端和服务器上可用,请将其放在
lib/
中。

Meteor按字母顺序加载同一目录中的文件。首先加载较深子目录中的文件。
lib/
目录中的文件在加载其他文件之前加载。名为
main.*
的文件最后加载。在您的情况下,我会将
validate.js
放在
client/lib/
中。如果希望验证文件在客户端和服务器上可用,请将其放在
lib/
中。

Meteor按字母顺序加载同一目录中的文件。首先加载较深子目录中的文件。
lib/
目录中的文件在加载其他文件之前加载。名为
main.*
的文件最后加载。在您的情况下,我会将
validate.js
放在
client/lib/
中。如果您希望验证文件在客户端和服务器上可用,请将其放在
lib/
中。

感谢@Cuberto完成此问题,但出现了新问题:(Meteor将文件包装在IIFE中。这意味着使用函数声明或
var
定义的变量不会导出到全局范围。如果要定义全局函数,则需要在不使用
var
或函数声明的情况下执行此操作:
firstValidator=function(){/*…*/};
。一个更明确的替代方法是直接传入全局变量:
(函数(全局){global.firstValidator=function(){};}(this));
感谢@Cuberto完成此问题,但出现了新问题:(Meteor将文件包装在IIFE中。这意味着使用函数声明或
var
定义的变量不会导出到全局范围。如果要定义全局函数,则需要在不使用
var
或函数声明的情况下执行此操作:
firstValidator=function(){/*…*/};
。一个更明确的替代方法是直接传入全局变量:
(函数(全局){global.firstValidator=function(){};}(this));
感谢@Cuberto完成此问题,但出现了新问题:(Meteor将文件包装在IIFE中。这意味着使用函数声明或
var
定义的变量不会导出到全局范围。如果要定义全局函数,则需要在不使用
var
或函数声明的情况下执行此操作:
firstValidator=function(){/*…*/};
。一个更明确的替代方法是直接传入全局变量:
(函数(全局){global.firstValidator=function(){};}(this));
感谢@Cuberto完成此问题,但出现了新问题:(Meteor将文件包装在IIFE中。这意味着使用函数声明或
var
定义的变量不会导出到全局范围。如果要定义全局函数,则需要在不使用
var
或函数声明的情况下执行此操作:
firstValidator=function(){/*…*/}一个更明确的替代方法是直接传入全局变量:
(函数(全局){global.firstValidator=function(){};}(this));