模块规范在Node中,每个js文件都是一个独立的模块模块包括CommonJS规范的核心变量:export:exports,module.exportsimport:require通过以上变量进行模块化开发搜索顺序(优先级):1.1文件模块:从文件模块缓存中搜索,返回1.2原生模块:原生模块(fs,http)cache="nativeModule="1.3文件加载:相对路径="绝对路径="非原生模块如果以a开头相对路径./,从当前require文件的相对位置找如果以绝对路径/开头,则从根目录找如果文件不带后缀,先从js,json,节点有序。如果是目录,则根据package.json的main属性值来确定目录中的入口文件。默认是index.js。如果文件是第三方模块,则导入node_modules文件上层递归搜索搜索策略1.原生模块:http,fs,path等,require后先查看模块是否在列表中nativemodules2.具有相对路径的文件模块:./mod或../mod如果没有确切的文件名如果找到模块,NodeJs将尝试以.js、.json或.node扩展名加载它。3.绝对路径文件模块:/pathtomodule/mod是最快的4.作为模块的目录:./dirname将是.js.json/main/index.js/main/index.node5。非原生模块的文件模块:mod查找顺序:在当前文件夹的node_modules下,上层目录下的node_modules下查找,上层目录下的node_modules下,上层目录下的node_modules下查找......
