日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

在前端中,什么是幽靈依賴?

來源: 責編: 時間:2024-04-22 09:15:59 243觀看
導讀前言大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心。幽靈依賴?前幾天在公司的技術分享會上,我總是聽到大佬們在提起一個名詞——幽靈依賴,起初我沒有太在意,以為這個不太重要,所

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心。5eo28資訊網——每日最新資訊28at.com

幽靈依賴?

前幾天在公司的技術分享會上,我總是聽到大佬們在提起一個名詞——幽靈依賴,起初我沒有太在意,以為這個不太重要,所以就沒怎么去了解這個名詞。5eo28資訊網——每日最新資訊28at.com

直到我在做項目pnpm遷移的時候,我突然很想知道它跟幽靈依賴到底有什么關系呢?5eo28資訊網——每日最新資訊28at.com

其實在了解什么關系之前,我應該去了解一下什么是幽靈依賴,我們接著聊!!!5eo28資訊網——每日最新資訊28at.com

什么是幽靈依賴?

比如我現在,我在開發一個項目A,項目A中我裝了npm-lsx這個包,而這個npm-lsx的包依賴了npm-test,咱們來看看這兩處packages.json5eo28資訊網——每日最新資訊28at.com

依賴關系是:A <- npm-lsx <- npm-test5eo28資訊網——每日最新資訊28at.com

// A/packages.json{  "name": "A",  "dependencies": {    "npm-lsx": "^1.0.0"  }}// A/node_modules/npm-lsx/packages.json{  "name": "npm-lsx",  "dependencies": {    "npm-test": "^1.0.0"  }}

node_modules規則

如果按照node_modules的規則的話,那么目錄的結構應該是這樣的5eo28資訊網——每日最新資訊28at.com

node_modules├── npm-lsx |   └── node_modules|       └── npm-test

但是如果依賴關系很長的話,那么會導致目錄深度非常深,所以我們常用的npm、yarn解決了這個問題5eo28資訊網——每日最新資訊28at.com

npm、yarn

它們是怎么解決這個問題的呢?npm、yarn為了解決依賴關系過長時,導致的目錄結構過深,采用了扁平化,也就是所有依賴都被拍平到node_modules目錄下。這樣的好處就是,不再有層級過深的問題。5eo28資訊網——每日最新資訊28at.com

現在目錄結構變成這樣了5eo28資訊網——每日最新資訊28at.com

// A/node_modulesnode_modules├── npm-lsx ├── npm-test

幽靈依賴

接著上面的示例,繼續聊,請看下面的代碼5eo28資訊網——每日最新資訊28at.com

const lsx = require('npm-lsx')const test = require('npm-test')lsx()test()

你們覺得這段代碼有問題嗎?其實運行起來是沒問題的。但是問題來了,我們項目中居然能直接引用npm-test這個包!!!5eo28資訊網——每日最新資訊28at.com

我們都知道依賴關系是:5eo28資訊網——每日最新資訊28at.com

A <- npm-lsx <- npm-test5eo28資訊網——每日最新資訊28at.com

按理說,A是不能直接引用npm-test的,因為沒有直接依賴關系啊!!!但是因為前面說了,npm、yarn會將依賴拍平在A的node_modules中,這導致了A可以直接require('npm-test')5eo28資訊網——每日最新資訊28at.com

我們稱這個npm-test為幽靈依賴!!!5eo28資訊網——每日最新資訊28at.com

幽靈依賴的壞處?

某天 npm-lsx 不依賴 npm-test 了

已知你現在代碼是這樣5eo28資訊網——每日最新資訊28at.com

const lsx = require('npm-lsx')const test = require('npm-test')lsx()test()

某天npm-lsx升級了!它不再依賴npm-test了!那么此時A的node-modules中變了!5eo28資訊網——每日最新資訊28at.com

// 以前node_modules├── npm-lsx ├── npm-test// 現在node_modules├── npm-lsx

那么你的代碼會報錯!5eo28資訊網——每日最新資訊28at.com

const lsx = require('npm-lsx')const test = require('npm-test') // 沒有lsx()test() // 報錯!!!

其實這個情況還好,因為這種情況在打包上線過程中就會報錯依賴找不到了,所以不太會造成線上的報錯崩潰5eo28資訊網——每日最新資訊28at.com

多項目引用同一個幽靈依賴

我現在有兩個項目A和B5eo28資訊網——每日最新資訊28at.com

A中的node_modules目錄為,現階段npm-test的版本為1.0.05eo28資訊網——每日最新資訊28at.com

// A/node_modulesnode_modules├── npm-lsx ├── npm-test 版本號:1.0.0

A中某個文件的代碼為5eo28資訊網——每日最新資訊28at.com

const test = require('npm-test')test()

B中某個文件的代碼為5eo28資訊網——每日最新資訊28at.com

const test = require('npm-test')test()

當有一天npm-lsx所依賴的npm-test升級了!版本升級為了2.0.05eo28資訊網——每日最新資訊28at.com

// A/node_modulesnode_modules├── npm-lsx ├── npm-test 版本號:2.0.0

此時test的用法也變了~而因為A項目已經回歸過了,所以他知道,也改了對應的代碼5eo28資訊網——每日最新資訊28at.com

const test = require('npm-test')test.run() // 修改代碼

而B項目就沒那么好運了,它并沒有進行回歸,所以并沒有去改代碼!!!!5eo28資訊網——每日最新資訊28at.com

const test = require('npm-test') // 有test() // 直接報錯

這就慘了,B項目在打包階段并不會因為依賴不到npm-test而報錯,所以它會順利上線。。然后,等到了線上運行起來,直接報錯!!!這是非常嚴重的的事故!5eo28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-84468-0.html在前端中,什么是幽靈依賴?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 頻繁切換v-show,不頻繁使用v-if?面試的時候可別再這么說了!

下一篇: 美團一面:什么是CAS?有什么優缺點?我說我知道AtomicInteger

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲一区二区三区三| 国产视频亚洲精品| 久久久人成影片一区二区三区观看 | 亚洲综合国产精品| 欧美在线免费观看| 欧美freesex交免费视频| 欧美日韩www| 国产精品综合网站| 亚洲第一天堂无码专区| 夜夜嗨av一区二区三区四区| 亚洲欧美99| 久久尤物视频| 欧美日韩亚洲天堂| 国产午夜精品视频| 亚洲区第一页| 午夜精品久久一牛影视| 免费欧美日韩| 国产精品v亚洲精品v日韩精品| 国产亚洲福利一区| 亚洲欧洲一区二区三区在线观看| 亚洲男人天堂2024| 欧美不卡视频| 国产精品亚洲欧美| 亚洲黄色在线视频| 欧美一区二区三区四区视频| 欧美国产日韩一区| 国产伪娘ts一区| 99re66热这里只有精品4| 久久国产婷婷国产香蕉| 欧美日韩激情小视频| 国内精品久久久久伊人av| 一区二区免费在线播放| 久久中文久久字幕| 国产精品视频免费一区| 欧美 日韩 国产一区二区在线视频| 欧美三级不卡| 尤物九九久久国产精品的分类| 亚洲一区二区3| 欧美激情久久久| 韩国自拍一区| 亚洲欧美精品在线| 欧美精品大片| 影音先锋亚洲精品| 欧美一区2区三区4区公司二百| 欧美精品网站| 在线看片日韩| 久久成人精品无人区| 国产精品扒开腿做爽爽爽视频| 亚洲高清资源综合久久精品| 欧美在线免费观看| 欧美图区在线视频| 亚洲毛片一区二区| 毛片精品免费在线观看| 国产一区视频在线看| 亚洲网站视频| 欧美人与禽猛交乱配视频| 在线观看视频一区二区| 欧美中文在线观看| 国产精品爽黄69| 在线一区二区三区四区五区| 欧美大片免费观看在线观看网站推荐| 国语精品一区| 久久av资源网| 国产区欧美区日韩区| 亚洲综合欧美日韩| 欧美午夜精品久久久久久人妖 | 国产精品嫩草99av在线| 一本一本久久a久久精品综合妖精| 免费不卡欧美自拍视频| 激情一区二区| 久久国产精品电影| 国产视频欧美视频| 欧美一区三区二区在线观看| 国产老女人精品毛片久久| 亚洲综合三区| 国产精品毛片一区二区三区 | 美女尤物久久精品| 在线观看日韩av电影| 久久午夜影视| 在线观看视频亚洲| 美女精品视频一区| 亚洲国产精品久久91精品| 免费看成人av| 亚洲国产日韩一级| 欧美高清hd18日本| 亚洲精品一品区二品区三品区| 欧美福利一区| 99国产成+人+综合+亚洲欧美| 欧美国产一区二区| 亚洲乱码久久| 欧美日本一区二区三区| 一本一本久久| 国产精品理论片在线观看| 亚洲一区二区三区免费视频| 国产精品嫩草久久久久| 小处雏高清一区二区三区 | 136国产福利精品导航网址| 欧美1级日本1级| 亚洲精品免费在线| 欧美日韩精品伦理作品在线免费观看| 亚洲最新视频在线播放| 国产精品久久久久久久久久尿| 亚洲欧美成人综合| 国产一区日韩一区| 美女主播一区| 亚洲最黄网站| 国产精品影片在线观看| 久久精品国产精品亚洲| 在线日韩视频| 欧美日韩第一区日日骚| 亚洲综合日韩| 一区在线观看| 欧美精品在线一区二区| 亚洲综合国产激情另类一区| 国内精品美女在线观看| 欧美成人国产| 亚洲一区二区三区在线观看视频 | 国产午夜亚洲精品羞羞网站| 久久一综合视频| 亚洲精品久久久久久下一站| 国产精品扒开腿做爽爽爽软件| 久久国产精品久久久久久电车| 亚洲国产精品一区二区三区 | 亚洲国产日韩欧美在线动漫| 欧美日韩调教| 久久国产精品一区二区| 亚洲欧洲在线看| 国产精品亚洲а∨天堂免在线| 久久综合伊人77777麻豆| 日韩亚洲成人av在线| 国产三区二区一区久久| 欧美国产日韩一区二区在线观看 | 国产精品自拍三区| 久久伊人精品天天| 亚洲无人区一区| 一区二区在线视频| 欧美日韩1区2区| 久久黄色网页| 一区二区电影免费在线观看| 韩国免费一区| 国产精品家庭影院| 美女免费视频一区| 亚洲欧美日本视频在线观看| 亚洲电影在线| 国产精品毛片a∨一区二区三区|国 | 亚洲免费av网站| 国产一级揄自揄精品视频| 欧美激情视频在线播放| 欧美一区二区三区电影在线观看| 亚洲国产婷婷香蕉久久久久久| 国产精品亚洲一区二区三区在线| 欧美大秀在线观看| 久久电影一区| 亚洲网在线观看| 亚洲精品黄网在线观看| 国产一区二区三区奇米久涩| 欧美日韩调教| 牛人盗摄一区二区三区视频| 欧美在线视频日韩| 在线视频中文亚洲| 亚洲黄色天堂| 狠狠色狠狠色综合人人| 国产精品欧美久久久久无广告| 欧美激情一区二区三区高清视频| 久久久www成人免费毛片麻豆| 亚洲尤物在线| 亚洲另类在线视频| 尤物网精品视频| 国产午夜精品视频免费不卡69堂| 欧美午夜寂寞影院| 欧美精品色网| 免费视频一区| 久久婷婷丁香| 久久国产精品亚洲77777| 亚洲综合电影| 亚洲特级毛片| 一本色道久久综合亚洲精品婷婷| 91久久线看在观草草青青| 精品动漫3d一区二区三区| 国产日韩欧美麻豆| 国产精品区一区二区三| 欧美日韩一区二区三区高清| 欧美激情一二三区| 你懂的视频一区二区| 久久久久国产精品麻豆ai换脸| 欧美一区二区私人影院日本| 亚洲欧美日韩一区二区| 亚洲伊人观看| 亚洲少妇最新在线视频| 99亚洲一区二区| 日韩天天综合| 日韩午夜免费视频| 亚洲精品欧美日韩专区| 亚洲黄色高清| 亚洲激情在线| 91久久精品一区二区别| 亚洲国产欧美一区| 亚洲国产91色在线| 亚洲国产高清在线| 亚洲精品1区2区| 亚洲激情社区| 亚洲精品一区久久久久久| 亚洲精品亚洲人成人网| 亚洲精品影视在线观看|