应该使用哪个捆绑系统AMD,CommonJS,ES模块,IIFE,UMD和SystemJS

时间:2018-07-26 04:50:48

标签: javascript

RollupJS模块捆绑器提供了可能的输出列表

  • AMD
  • CommonJS
  • ES模块
  • IIFE
  • UMD
  • SystemJS

在某些情况下应该选择哪种格式吗?

amd – Asynchronous Module Definition, used with module loaders like RequireJS
cjs – CommonJS, suitable for Node and Browserify/Webpack
es – Keep the bundle as an ES module file
iife – A self-executing function, suitable for inclusion as a <script> tag. (If you want to create a bundle for your application, you probably want to use this, because it leads to smaller file sizes.)
umd – Universal Module Definition, works as amd, cjs and iife all in one
system – Native format of the SystemJS 

1 个答案:

答案 0 :(得分:0)

  

过去,构建模块和处理依赖项很麻烦。以库或ES2015模块形式的更新解决方案已消除了大部分麻烦。 如果您要开始一个新的模块或项目,ES2015是正确的选择。它将始终得到支持,并且当前使用编译器和polyfills的支持非常出色。另一方面,如果您希望坚持使用普通的ES5代码,则通常在客户端的AMD和服务器的CommonJS / Node之间进行通常的划分

我推荐本文的讲座,您将在其中找到每个模块系统的所有详细信息 pros cons

https://auth0.com/blog/javascript-module-systems-showdown/