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

詳解npm與package.json之間的聯(lián)系

 更新時(shí)間:2023年07月26日 09:24:39   作者:一顆冰淇淋  
這篇文章主要為大家介紹了npm與package.json之間的聯(lián)系圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

在nodejs編寫的腳手架項(xiàng)目中,npm是不可缺少的包管理工具,當(dāng)使用npm初始化時(shí),會(huì)生成package.json文件來對(duì)項(xiàng)目進(jìn)行整體的管理和描述

以下是新建的練習(xí)項(xiàng)目中package.json文件,初始化項(xiàng)目之后,安裝了axios

配置信息

以上每個(gè)配置信息分別對(duì)應(yīng)的含義如下

(1)name * 項(xiàng)目名稱 

(2)version * 當(dāng)前版本號(hào) 

(3)description 是描述信息 

(4)main: 'index.js' 表示項(xiàng)目入口

(5)script 用于配置腳本信息 start/stop/test/restart 時(shí), npm run start中的run可以省略

(6)author 作者 (發(fā)布時(shí)用到) 

(7)license 開源協(xié)議 (發(fā)布時(shí)用到)  

(8)dependencies 依賴 開發(fā)環(huán)境生產(chǎn)環(huán)境都需要

(9)devDependencies 開發(fā)時(shí)依賴的庫(kù), 生產(chǎn)環(huán)境不需要使用

package-lock.json文件

以上項(xiàng)目通過 npm install axios 為項(xiàng)目添加了axios,所以在dependencies下添加了aixos,安裝的時(shí)候除了在node_modules會(huì)增加對(duì)應(yīng)的依賴外,在package-lock.json會(huì)指明axios具體的版本以及axios內(nèi)部的依賴,可以看到package-lock.json文件中,axios版本為0.21.1

但,有一點(diǎn)很奇怪,明明我只安裝了 axios,為什么 package-lock.json 的dependencies 中還有一個(gè) "follow-redirects",我們找到 node_modules 中安裝的包文件,發(fā)現(xiàn)確實(shí)有axios和follow-redirects,打開axios的package.json文件,可以看到在axios的生產(chǎn)依賴 dependencies 中添加了 "follow-redirects",所以在安裝 axios 的時(shí)候,自動(dòng)幫我們安裝了它所依賴的包,而 devDependencies 中依賴的包都沒有安裝,這也驗(yàn)證了一點(diǎn),devDependencies只會(huì)被用于開發(fā)中,生產(chǎn)當(dāng)中是不會(huì)安裝的

執(zhí)行 npm install

當(dāng)我們拿到一個(gè)新項(xiàng)目的時(shí)候,通常是沒有node_modules文件夾的,我們需要自行通過 npm install 來安裝所有的依賴,當(dāng)執(zhí)行 npm install 的時(shí)候具體進(jìn)行了哪些操作呢?

如圖所示,當(dāng)項(xiàng)目中存在package.json文件執(zhí)行 npm install 的時(shí)候,首先會(huì)判斷是否存在 package-lock.json 文件,沒有 lock 文件的話,會(huì)根據(jù) package.json 文件建立依賴關(guān)系,然后去存儲(chǔ) npm 各種工具的 registry 庫(kù)中查找依賴并獲取壓縮包,此時(shí)會(huì)將壓縮包緩存下來,然后將壓縮包添加到 node_modules中,添加到 node_modules 后會(huì)生成 package-lock.json 中記錄下載的版本和依賴關(guān)系。

如果存在 package-lock.json 文件,直接判斷packge.json 所需依賴中與lock文件中依賴是否一致,不一致再重新建立依賴關(guān)系,一致的時(shí)候去緩存中查找緩存文件,沒找到緩存文件就自行去 registry 庫(kù)中下載壓縮包。

以上就是詳解npm與package.json之間的聯(lián)系的詳細(xì)內(nèi)容,更多關(guān)于npm與package.json的聯(lián)系的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何解決安裝websocket還是報(bào)錯(cuò)Cannot find module'ws'問題

    如何解決安裝websocket還是報(bào)錯(cuò)Cannot find module'ws&apos

    這篇文章主要介紹了如何解決安裝websocket還是報(bào)Cannot find module'ws'問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 基于socket.io+express實(shí)現(xiàn)多房間聊天

    基于socket.io+express實(shí)現(xiàn)多房間聊天

    本文給大家分享的是使用node.js,基于socket.io+express實(shí)現(xiàn)多房間聊天的代碼,非常的實(shí)用,有需要的小伙伴可以來參考下
    2016-03-03
  • nodejs實(shí)現(xiàn)百度輿情接口應(yīng)用示例

    nodejs實(shí)現(xiàn)百度輿情接口應(yīng)用示例

    這篇文章主要介紹了nodejs實(shí)現(xiàn)百度輿情接口應(yīng)用,結(jié)合實(shí)例形式分析了node.js調(diào)用百度輿情接口的具體使用技巧,需要的朋友可以參考下
    2020-02-02
  • Node.js正則表達(dá)式優(yōu)化與ReDOS攻擊防范實(shí)戰(zhàn)案例

    Node.js正則表達(dá)式優(yōu)化與ReDOS攻擊防范實(shí)戰(zhàn)案例

    這篇文章主要介紹了Node.js正則表達(dá)式優(yōu)化與ReDOS攻擊防范實(shí)戰(zhàn)案例的相關(guān)資料,文中提供了防護(hù)策略和優(yōu)化實(shí)踐,包括避免嵌套量詞、使用確定性模式、限制回溯深度等原則,以及使用超時(shí)控制、替換安全庫(kù)等方案,需要的朋友可以參考下
    2026-05-05
  • 詳解使用nvm管理多版本node的方法

    詳解使用nvm管理多版本node的方法

    本篇文章主要介紹了詳解使用 nvm 管理多版本 node的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Node.js實(shí)現(xiàn)讀取Excel數(shù)據(jù)并插入MySQL

    Node.js實(shí)現(xiàn)讀取Excel數(shù)據(jù)并插入MySQL

    這篇文章主要為大家詳細(xì)介紹了Node.js如何實(shí)現(xiàn)讀取Excel數(shù)據(jù)并插入到MySQL數(shù)據(jù)庫(kù)中,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 詳解node child_process模塊學(xué)習(xí)筆記

    詳解node child_process模塊學(xué)習(xí)筆記

    這篇文章主要介紹了詳解node child_process模塊學(xué)習(xí)筆記,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • node.js中的fs.unlinkSync方法使用說明

    node.js中的fs.unlinkSync方法使用說明

    這篇文章主要介紹了node.js中的fs.unlinkSync方法使用說明,本文介紹了fs.unlinkSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node中文件斷點(diǎn)續(xù)傳原理和方法總結(jié)

    Node中文件斷點(diǎn)續(xù)傳原理和方法總結(jié)

    在之前做過一個(gè)小項(xiàng)目,涉及到了文件上傳,在大文件上面使用了斷點(diǎn)續(xù)傳,降低了服務(wù)器方面的壓力,現(xiàn)在小編把Node中文件斷點(diǎn)續(xù)傳原理和方法總結(jié)分享給大家,感興趣的朋友一起看看吧
    2022-01-01
  • 在Node.js下運(yùn)用MQTT協(xié)議實(shí)現(xiàn)即時(shí)通訊及離線推送的方法

    在Node.js下運(yùn)用MQTT協(xié)議實(shí)現(xiàn)即時(shí)通訊及離線推送的方法

    這篇文章主要介紹了在Node.js下運(yùn)用MQTT協(xié)議實(shí)現(xiàn)即時(shí)通訊及離線推送的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01

最新評(píng)論

休宁县| 富宁县| 嘉禾县| 东乡族自治县| 张北县| 定兴县| 曲周县| 鄯善县| 平谷区| 甘孜| 阳原县| 祥云县| 姜堰市| 沁水县| 洛扎县| 广丰县| 东宁县| 镇远县| 河北省| 东港市| 轮台县| 边坝县| 灵宝市| 呼图壁县| 尉犁县| 阿荣旗| 平定县| 汝阳县| 环江| 三门县| 个旧市| 静海县| 河北区| 沭阳县| 龙游县| 兖州市| 甘孜县| 乡宁县| 宜昌市| 恩平市| 沈阳市|