module解析过程

加载一个核心模块时

  直接require('模块名')即可

加载一个文件模块时

  直接require('绝对路径/相对路径')即可,可省略文件后缀.js。

  因为如果文件不存在,将试图找文件名.js的文件

加载一个文件夹模块时

  直接require('路径')即可,当该文件夹中存在package.json文件时,将解析该文件的main属性,并将其值作为入口文件。

  否则假设index.js文件为入口文件

加载一个node_modules文件夹内的模块

  当不含路径且不是核心模块,Node将试图在当前文件夹中的node_modules文件夹内寻找。(原文:If the module name is not relative and is not a core module, Node will try to fi nd it inside the node_modules folder in the current directory. 不知道翻译的对不)

  如果在当前目录./下的node_modules下没找到,则会继续到上级目录../node_modules上寻找,直到到达根目录。通过npm可以进行方便的包管理。

 缓存模块

  当模块第一次被引入后,将被缓存起来,再次使用时将直接存缓存中读取。

原文地址:https://www.cnblogs.com/whiteHome/p/5596076.html