如何构建一个大型JavaScript应用程序?

时间:2014-12-03 21:28:56

标签: javascript

我尝试将模块组织到NAMESPACES(参见下面的示例),并尽可能少地依赖于最新的巧妙命名的JavaScript库或框架。我知道这个问题不是非常集中,但这不是一种可扩展的方法吗?是否有其他方法来扩展我应该注意的JavaScript?

我应该补充说这是适用于Chrome应用。

var MODULE_A = (function() {
  var A_CONSTANT_NUMBER = 1;
  var myPrivateVar_ = 2;

  var privateMethod1 = function() {
    console.log("A.privateMethod1");
  };

  var privateMethod2 = function() {
    console.log("A.privateMethod2");
  };

  return {
    aPublicVar1: 3,

    publicMethod1: function() {
      console.log("A.publicMethod1");
    },

    publicMethod2: function() {
      console.log("A.publicMethod2");
    }
  }
})();

3 个答案:

答案 0 :(得分:1)

看看requirejs。它使您的建议非常简单,同时添加依赖项解析/加载。

答案 1 :(得分:0)

您是否尝试过使用http://browserify.org或其他任何依赖管理器?

这是一个非常好的讨论,可能对您的问题非常有帮助。 What is the purpose of Node.js module.exports and how do you use it?

答案 2 :(得分:0)

全局命名空间并没有为您提供现代模块系统可以为您提供的足够好处。

如果您正在编写节点应用程序,您应该查看使用commonjs,或者如果您正在为浏览器编写,则应该查看使用requirejs的amd。两者都使您能够正确地定义一个模块在另一个模块上的依赖关系,为您提供正确的封装,最重要的是跟踪您的依赖关系图。 Amd进一步为您提供了运行时异步加载,这很好,但也带来了一些额外的麻烦。

正确封装这样的模块可以为您提供一种更好的方法来构建可扩展到无穷大的大型代码库。这里名称间距不是问题,名称来自文件路径和/或模块配置。在本地,您可以根据需要命名返回值或模块导出。