require 方法的加载规则 优先从缓存中加载 核心模块 路径形式的模块 第三方模块 一、优先从缓存中加载 main.js:执行加载a.js模块
require 方法的加载规则
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值,不会再次执行该模块代码。
核心模块的本质也是文件,核心模块文件已经被编译到了二进制文件中了,我们只需要按照名字来加载就可以了。如:
我们说的路径形式的模块,其实就是加载自己写的JS文件,有四种方式可以加载
var fooExports = require('./index') //相对路径,常用
var fooExports = require('../index') //相对路径,常用
var fooExports = require('/index') //根目录,不常用
var fooExports = require('D:/demo/index') //根目录,不常用
既不是核心模块、也不是路径形式的模块,就是第三方模块。加载方式如下
以 var template = require(‘art-template') 为例:
第三方模块寻找顺序: node_modules/art-template > package.json 文件 > main 属性 > index.js
到此这篇关于详解在node.js中require方法的加载规则的文章就介绍到这了,更多相关node.js require方法加载规则内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: 详解在node.js中require方法的加载规则
本文链接: https://lsjlt.com/news/129534.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0