node.js中模块以文件为粒度。
require 引入文件,路径可以使用小驼峰,'.'或者'..'结合,引入的文件如果是文件夹,会优先找到改文件夹下的package.json,如果配置合法会找到main指向的文件,否则加载index.js,index.json,index.node,其种.node是c++扩展。
module.exports/exports是文件暴露出去的对象,实则每个模块都是互不干涉的闭包。
使用 require 引入的文件是(形式引用)有缓存的,即第一次加载包后后续加载会读取缓存中的包数据。