加入收藏 | 设为首页 | 会员中心 | 我要投稿 信阳站长网 (https://www.0376zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

JS中require方法怎样用?require的加载规则你知吗?

发布时间:2022-02-22 13:50:46 所属栏目:语言 来源:互联网
导读:JS中require方法怎样用?一些新手对于node.js中require方法不是很了解,对此这篇文章就主要给大家分享一下node.js中require方法以及加载规则,有着方面学习需求的朋友就接着看吧。 一、优先从缓存中加载 main.js:执行加载a.js模块 require(./a) a.js:执行
      JS中require方法怎样用?一些新手对于node.js中require方法不是很了解,对此这篇文章就主要给大家分享一下node.js中require方法以及加载规则,有着方面学习需求的朋友就接着看吧。
 
      一、优先从缓存中加载
      main.js:执行加载a.js模块
 
require('./a')
    a.js:执行加载b.js模块,并输出a被加载了
 
require('./b')
console.log('a.js 被加载了')
    b.js:输出b被加载了
 
console.log('b.js 被加载了')
    结果:
 
    可以看出:main去加载a.js,然后a在去加载b.js过程中,并没有打印两次 a.js被加载,Node会直接从require.cache中根据传入的id,取出该对象的exports值,不会再次执行该模块代码。
 
    二、核心模块
核心模块的本质也是文件,核心模块文件已经被编译到了二进制文件中了,我们只需要按照名字来加载就可以了。如:
 
require(‘fs')
require(‘http')
    三、路径形式的模块
我们说的路径形式的模块,其实就是加载自己写的JS文件,有四种方式可以加载
 
var fooExports = require('./index') //相对路径,常用
var fooExports = require('../index') //相对路径,常用
var fooExports = require('/index') //根目录,不常用
var fooExports = require('D:/demo/index') //根目录,不常用
    四、第三方模块
凡是用到第三方模块,都必须通过 npm 来下载
使用的时候就可以通过 require(‘包名') 的方式来进行加载才可以使用
不可能有任何一个第三方包和核心模块的名字是一样的
既不是核心模块、也不是路径形式的模块,就是第三方模块。加载方式如下
 
以 var template = require(‘art-template') 为例:
 
先找到当前文件所处目录中的 node_modules 目录
然后根据以下方式找到文件中的 main 属性
main 属性中就记录了 art-template 的入口模块
然后加载使用这个第三方包,但是实际上最终加载的还是文件
如果 package.json 文件不存在或者 main 指定的入口模块是也没有
则 node 会自动找该目录下的 index.js,也就是说 index.js 会作为一个默认备选项
如果以上所有任何一个条件都不成立,则会进入上一级目录中的 node_modules 目录查找
如果上一级还没有,则继续往上上一级查找
如果直到当前磁盘根目录还找不到,最后报错: can not find module xxx
第三方模块寻找顺序:  node_modules/art-template   >    package.json 文件   >   main 属性 >   index.js

(编辑:信阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读