module解析过程

Posted 小孩孩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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可以进行方便的包管理。

 缓存模块

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

以上是关于module解析过程的主要内容,如果未能解决你的问题,请参考以下文章

Go modules基础精进,六大核心概念全解析(下)

无法在运行时加载“Cwd”(以及其他非核心模块)

Nginx事件管理之核心模块ngx_events_module

vuex的5个核心概念四(modules)

模块

nodejs模块中exports和module.exports的区别