在node.js中,所谓的模块,就是一个文件,通常是js文件或json文件。
换言之,一个js文件就是一个模块。
模块是Node.js应用程序的基本组成部分。
回顾一下,在浏览器为何需要模块化?
主要是解决两大问题:
全局变量污染
繁琐的文件依赖
到了服务端,情况是有些不同的。
在服务端,只有js代码,没有html。所以在服务端不可能借助script标签来引入js文件。
如何在一个js文件中,引入其他的js文件,需要一种机制来完成,这种机制就是模块机制。
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。
可以稍微回顾一下,模块化的发展简史:
萌芽时代,使用的编程技巧
09年Node.js在出现,实现了commonjs规范
三大派系之保守派,遵循了commonjs规范,提出了browserify工具
三大派系之革新派,提出了AMD规范,推出了require.js
三大派系之中立派,提出了CMD规范,推出了sea.js
es6,自己实现了export和import的模块化
而且,在node.js也会支持es6的模块化。