欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間: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會直接從require.cache中根據(jù)傳入的id,取出該對象的exports值,不會再次執(zhí)行該模塊代碼。

二、核心模塊

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

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

三、路徑形式的模塊

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

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

四、第三方模塊

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

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

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

  • 先找到當(dāng)前文件所處目錄中的 node_modules 目錄
  • 然后根據(jù)以下方式找到文件中的 main 屬性
  • main 屬性中就記錄了 art-template 的入口模塊
  • 然后加載使用這個第三方包,但是實際上最終加載的還是文件
  • 如果 package.json 文件不存在或者 main 指定的入口模塊是也沒有
  • 則 node 會自動找該目錄下的 index.js,也就是說 index.js 會作為一個默認(rèn)備選項
  • 如果以上所有任何一個條件都不成立,則會進(jìn)入上一級目錄中的 node_modules 目錄查找
  • 如果上一級還沒有,則繼續(xù)往上上一級查找
  • 如果直到當(dāng)前磁盤根目錄還找不到,最后報錯: 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nodejs 發(fā)送Post請求功能(發(fā)短信驗證碼例子)

    Nodejs 發(fā)送Post請求功能(發(fā)短信驗證碼例子)

    這篇文章主要介紹了Nodejs 發(fā)送Post請求功能(發(fā)短信驗證碼例子),需要的朋友可以參考下
    2017-02-02
  • 你應(yīng)該知道的幾類npm依賴包管理詳解

    你應(yīng)該知道的幾類npm依賴包管理詳解

    npm 是node.js 里的包管理器,是一個命令行工具,下面這篇文章主要給大家介紹了關(guān)于你應(yīng)該知道的幾類npm依賴包管理,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • 用Nodejs實現(xiàn)在終端中炒股的實現(xiàn)

    用Nodejs實現(xiàn)在終端中炒股的實現(xiàn)

    這篇文章主要介紹了用Nodejs實現(xiàn)在終端中炒股的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Nodejs中koa2連接mysql的實現(xiàn)示例

    Nodejs中koa2連接mysql的實現(xiàn)示例

    本文主要介紹了Nodejs中koa2連接mysql的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 初始Nodejs

    初始Nodejs

    本文屬于nodejs的基礎(chǔ)知識介紹篇,從nodejs的基本概念,到架構(gòu)示意圖,同步異步等方面做了詳細(xì)的解答,是篇非常不錯的文章
    2014-11-11
  • 使用vs code開發(fā)Nodejs程序的使用方法

    使用vs code開發(fā)Nodejs程序的使用方法

    本篇文章主要介紹了使用vs code開發(fā)Nodejs程序的使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • nodejs使用http模塊發(fā)送get與post請求的方法示例

    nodejs使用http模塊發(fā)送get與post請求的方法示例

    這篇文章主要介紹了nodejs使用http模塊發(fā)送get與post請求的方法,結(jié)合實例形式分析了nodejs基于http模塊實現(xiàn)發(fā)送get與post請求具體操作技巧,需要的朋友可以參考下
    2018-01-01
  • 詳解如何用typescript開發(fā)koa2的二三事

    詳解如何用typescript開發(fā)koa2的二三事

    這篇文章主要介紹了詳解如何用typescript開發(fā)koa2的二三事,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 如何在node.js中使用?JsonWebToken模塊進(jìn)行token加密

    如何在node.js中使用?JsonWebToken模塊進(jìn)行token加密

    目前在web框架中最流行的身份驗證是使用jsonwebtoken,簡稱jwt.可以設(shè)置加密方式,過期時間,存放個人信息,逆解析,下面這篇文章主要給大家介紹了關(guān)于如何在node.js中使用?JsonWebToken模塊進(jìn)行token加密的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 利用node.js開發(fā)cli的完整步驟

    利用node.js開發(fā)cli的完整步驟

    這篇文章主要給大家介紹了關(guān)于如何利用node.js開發(fā)cli的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論