JS的模块标准有CommonJS\AMD\CMD
node.js遵循CommonJS,require.js遵循AMD,sea.js遵循CMD
使用位置:ES6语法规则在浏览器中运用,Node.js在服务器上运行
目前所有浏览器都暂不支持ES6中的import\export使用,而Babel只能编译ES6的语法内容,对于这种文件打包和ES6新增的API是无能为力的。
我们可以借助Node.js的打包工具Webpack来实现ES6的模块化,这样开发人员在开发时可以使用ES6的Module思想,又可以在实际运行环境中将其得以实现。
具体Webpack使用操作Module实例:http://blog.youkuaiyun.com/u012863664/article/details/72813941
Node.js使用的模块规范是CommonJS,属于在浏览器之外运行JS的一种模块规范。
还有一种模块规范是AMD。浏览器端的模块,不能采用"同步加载"(synchronous),只能采用"异步加载"(asynchronous)。这就是AMD规范诞生的背景。
CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。AMD规范则是非同步加载模块,允许指定回调函数。由于Node.js主要用于服务器编程,模块文件一般都已经存在于本地硬盘,所以加载起来比较快,不用考虑非同步加载的方式,所以CommonJS规范比较适用。但是,如果是浏览器环境,要从服务器端加载模块,这时就必须采用非同步模式,因此浏览器端一般采用AMD规范。
浏览器端的模块,不能采用"同步加载"(synchronous),只能采用"异步加载"(asynchronous)。这就是AMD规范诞生的背景。
ES6定义的在浏览器中使用Module的规范:
具体的模块执行顺序等细节可参见《ES6学习》一书
参考链接:
http://www.cnblogs.com/chenguangliang/p/5856701.html
http://javascript.ruanyifeng.com/nodejs/module.html
http://zccst.iteye.com/blog/2215317
本文介绍了JavaScript的几种模块标准,包括CommonJS、AMD和CMD,并对比了它们在Node.js和浏览器环境中的应用。同时,文中还探讨了如何在浏览器中通过Webpack实现ES6模块化的实践。
1707

被折叠的 条评论
为什么被折叠?



