美文网首页
Node加载模块的方式

Node加载模块的方式

作者: 爱笑的疯小妞 | 来源:发表于2019-07-03 15:42 被阅读0次
    image.png

    require机制
    假设Y是路径,X是文件名或目录名,当 Nodejs 遇到 require(Y+X) 时,按照下面的顺序处理:
    1、如果 X 是核心模块(例如:require("http"))
    a.返回该模块b.不再继续执行

    2、如果Y是以“./”、“/”或“../”开头
    a.把X当成文件,从指定路径开始,依次查找下面文件:X、X.js、X.json、X.node,只要其中一个存在,就 返回该文件,不再继续执行
    b.把X当成目录,从指定路径开始,依次查找下面文件:X/package.json(main字段)、X/index.js、X/index.json、X/index.node,只要其中一个存在,就返回该文件,不再继续执行

    3.如果 X 不是核心模块,也没有以“./”、“/”或“../”开头,则Nodejs会从当前模块的父目录开始,尝试从它的 /node_module 目录里加载模块,如果还是没有找到,则移动到再上一层父目录,直到文件系统的根目录

    4.抛出“not found”

    vue项目main.js文件下import router from './router'默认导入router文件夹下index.js的原因?
    a.把router当作文件,从指定路径开始,依次查找router、router.js、router.json、router.node不存在
    b.把router当作目录,从指定路径开始,依次查找router/package.json(main)、router/index.js、router/index.json、router/index.node,找到router/index.js,返回该文件

    相关文章

      网友评论

          本文标题:Node加载模块的方式

          本文链接:https://www.haomeiwen.com/subject/ngzqhctx.html