天天看点

node 中第三方模块的加载过程原理node 中第三方模块的加载过程原理

node 中第三方模块的加载过程原理

凡是第三方模块都必须通过 npm 来下载

  • 使用的时候就可以通过

    require('包名')

    的方式来进行加载才可以使用
  • 不可能有任何一个第三方包和核心模块的名字是一样的
  • 既不是核心模块、也不是路径形式的模块

加载过程如下:

  • 先找到当前文件所处目录中的

    node_modules

    目录
  • 然后是

    node_modules/包名

  • 然后是

    node_modules/包名/packagejson

    文件
  • 然后找

    node_modules/包名/package.json

    文件中的

    main

    属性
  • main

    属性中就记录了

    的入口模块
  • 然后加载使用这个第三方包
  • 实际上最終加载的还是文件
  • 如果

    package.json

    文件不存在或者

    main

    指定的入口模块是也没有则

    node

    会自动找该目录下的

    index.js

    (也就是说

    index.js

    会作为一个默认备选明)

如果以上所有任何一个条件都不成立,则会进入上一级目录中

node_modules

目录查找。如果上一级还没有,则继续往上上一级查找

如果直到当前磁盘根目条还找不到, 最后报错;

can not find module xxx

继续阅读