模块化JavaScript - 除了CommonJS和AMD之外还有其他方法可以考虑吗?

lex*_*ore 11 javascript amd modular modularization commonjs

我正在为我的公司准备评估JavaScript模块化方法.我们正在为我们的项目定义"JavaScript最佳实践",模块化是一个核心问题.

从我迄今为止的研究中发现了两种主要方法:

周围有大量的加载器,插件,库等.

除此之外,还有goog.provide/ goog.require来自Google Closure Library.

还有其他方法需要考虑吗?我错过了哪些重要/相关的规格?

我们的要求简要说明:

  • 在单独的文件中构建JavaScript代码.
  • 在运行时加载相关模块.
  • ...不必将每个文件都包含在脚本标记中.
  • 一定不能维护JavaScript文件的索引.
  • 支持聚合和缩小 - 构建和使用单个缩小/优化的JavaScript文件的能力.
  • 能够以不同的组合使用模块 - 通常有不同的网页/客户端需要不同的模块子集.
  • 支持文档(使用JSDoc?).
  • 适合测试.
  • 适用于网络,跨浏览器.
  • 合理的IDE支持.

潜在:

  • 与ES6模块对齐.
  • 适用于Node.js和移动平台(如PhoneGap/Cordova).

答案的新建议:


附注:

  • 问题在于哪种方法更好.
  • 我不是要求特定的库和工具,而是要求方法和规范.
  • 我并没有特别要求提供场外资源.(如果没有这样的SO标签,我们考虑它可能是不合理的.)
  • 关于等框架的说明.这不是真正适合这个问题的框架.如果项目需要一个框架(无论是AngularJS还是ExtJS),那么大多数都没有模块化问题,因为框架必须提供模块化OOTB.如果项目不需要框架,那么由于模块化而带来框架是一种过度的做法.这是我特别没有询问库/工具的原因之一.

Gav*_*aff 1

ES和谐怎么样?

引用自此处: http: //addyosmani.com/writing-modular-js/

注意:虽然 Harmony 仍处于提案阶段,但您已经可以尝试 ES.next 的(部分)功能,这些功能借助 Google 的Traceur 编译器解决了对编写模块化 JavaScript 的本机支持。要在一分钟内启动并运行 Traceur,请阅读此入门指南。如果您有兴趣了解有关该项目的更多信息,还有一个关于它的 JSConf 演示文稿值得一看。

希望有帮助