前端模块化浅入浅出

一位菜鸟的阐述,随便看看就行

commonJS

commonJS是2009年一月由Mozilla推出的规范,其目标是使JS成为一门全能语言,主要体现在以下几个方面:

  • 服务端应用

  • 命令行工具

  • 桌面图形界面应用

  • 混合应用程序(如Titanium和adobe AIR)

主要规范内容包括modules,packages,process env,buffer,IO stream,file system,charset encode,web server gateway interface,socket等。
以此规范为基础的node.js由老美程序员Ryan Dahl于同年9月创造,基于Chrome 的V8引擎,使用事件驱动,异步IO模型,适用于开发高效的服务端应用,这标志着JavaScript模块化编程正式诞生。由于浏览器为避免假死,脚本全部采用异步加载方式,导致commonJS规范(同步加载)不兼容浏览器环境,需要通过browerify(最近webpack获得青睐)等构建工具进行预编译(即解析模块依赖)生成适用于浏览器环境运行的脚本。

AMD(asynchronous module definition)

此规范以另一种方式解决了浏览器模块化开发问题,相对应的标准实现为require.js,目前应用广泛。相较于commonJS省去了预编译过程,但是重用性较差,语法较松散不够紧凑。

CMD(common module definition)

此规范提出浏览器端与服务器端可通用的模块化解决方案。

你可能感兴趣的:(commonjs,amd模块加载,cmd)