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

How to structure a large JavaScript app?

本文关键字:一个 大型 JavaScript 应用程序 构建 何构建      更新时间:2023-09-26

我试图将模块组织成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");
    }
  }
})();

看看requirejs。它使您建议的内容变得非常容易,还可以添加依赖项解析/加载。

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

这是一个非常好的讨论,可能对您的问题非常有帮助。Node.js module.exports的目的是什么,你如何使用它?

全局命名空间不能为您提供现代模块系统所能为您提供的足够好处。

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

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