最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解在node.js中require方法的加載規(guī)則

 更新時(shí)間:2021年06月30日 15:07:07   作者:@必意玲  
這篇文章主要介紹了詳解在node.js中require方法的加載規(guī)則,本文一步步解析了require加載規(guī)則,講述了核心的模塊,路徑形式的模塊,第三方模塊等,需要的朋友可以參考下

require 方法的加載規(guī)則

  1. 優(yōu)先從緩存中加載
  2. 核心模塊
  3. 路徑形式的模塊
  4. 第三方模塊

一、優(yōu)先從緩存中加載

main.js:執(zhí)行加載a.js模塊

require('./a')

a.js:執(zhí)行加載b.js模塊,并輸出a被加載了

require('./b')
console.log('a.js 被加載了')

b.js:輸出b被加載了

console.log('b.js 被加載了')

結(jié)果:

在這里插入圖片描述

可以看出:main去加載a.js,然后a在去加載b.js過程中,并沒有打印兩次 a.js被加載,Node會(huì)直接從require.cache中根據(jù)傳入的id,取出該對(duì)象的exports值,不會(huì)再次執(zhí)行該模塊代碼。

二、核心模塊

核心模塊的本質(zhì)也是文件,核心模塊文件已經(jīng)被編譯到了二進(jìn)制文件中了,我們只需要按照名字來加載就可以了。如:

  • require(‘fs')
  • require(‘http')

三、路徑形式的模塊

我們說的路徑形式的模塊,其實(shí)就是加載自己寫的JS文件,有四種方式可以加載

var fooExports = require('./index')	//相對(duì)路徑,常用
var fooExports = require('../index')	//相對(duì)路徑,常用
var fooExports = require('/index')	//根目錄,不常用
var fooExports = require('D:/demo/index')	//根目錄,不常用

四、第三方模塊

  1. 凡是用到第三方模塊,都必須通過 npm 來下載
  2. 使用的時(shí)候就可以通過 require(‘包名') 的方式來進(jìn)行加載才可以使用
  3. 不可能有任何一個(gè)第三方包和核心模塊的名字是一樣的

既不是核心模塊、也不是路徑形式的模塊,就是第三方模塊。加載方式如下

以 var template = require(‘a(chǎn)rt-template') 為例:

  • 先找到當(dāng)前文件所處目錄中的 node_modules 目錄
  • 然后根據(jù)以下方式找到文件中的 main 屬性
  • main 屬性中就記錄了 art-template 的入口模塊
  • 然后加載使用這個(gè)第三方包,但是實(shí)際上最終加載的還是文件
  • 如果 package.json 文件不存在或者 main 指定的入口模塊是也沒有
  • 則 node 會(huì)自動(dòng)找該目錄下的 index.js,也就是說 index.js 會(huì)作為一個(gè)默認(rèn)備選項(xiàng)
  • 如果以上所有任何一個(gè)條件都不成立,則會(huì)進(jìn)入上一級(jí)目錄中的 node_modules 目錄查找
  • 如果上一級(jí)還沒有,則繼續(xù)往上上一級(jí)查找
  • 如果直到當(dāng)前磁盤根目錄還找不到,最后報(bào)錯(cuò): can not find module xxx

第三方模塊尋找順序:  node_modules/art-template   >    package.json 文件   >   main 屬性 >   index.js

到此這篇關(guān)于詳解在node.js中require方法的加載規(guī)則的文章就介紹到這了,更多相關(guān)node.js require方法加載規(guī)則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

龙川县| 河源市| 维西| 尤溪县| 湛江市| 焦作市| 岳阳市| 南皮县| 金阳县| 临沭县| 陆川县| 合作市| 承德县| 阳高县| 宝丰县| 内乡县| 温宿县| 贡山| 阿拉善右旗| 博野县| 化德县| 长海县| 汾西县| 太谷县| 宿迁市| 苗栗县| 梧州市| 宿松县| 满洲里市| 呼伦贝尔市| 白玉县| 平邑县| 奉贤区| 韩城市| 郑州市| 长阳| 濮阳市| 普安县| 肥东县| 金阳县| 攀枝花市|