自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

記錄一次切換包管理器引發(fā)的血案

開發(fā) 開發(fā)工具
雖然上面只提到了 antd 的版本不一致導(dǎo)致的問題,實(shí)際上還有其他的問題也是由于版本不一致導(dǎo)致的。所以我們?cè)谇袚Q包管理的時(shí)候,盡可能的保持包版本一致。

?背景

我們現(xiàn)在的項(xiàng)目統(tǒng)一用 yarn 進(jìn)行包管理,之前有一個(gè)舊項(xiàng)目之前使用的是 npm 進(jìn)行管理。于是我決定切換一下。

我具體的做法簡(jiǎn)單粗暴,直接 yarn install。

問題

結(jié)果我發(fā)現(xiàn)之前還好好的項(xiàng)目,突然就出現(xiàn)各種問題,其中一個(gè)問題是 ANTD 的圖標(biāo)重復(fù)渲染了,顯示出來(lái)兩個(gè)。

經(jīng)過一輪搜索,我找到一個(gè) ISSUE,看起來(lái)是版本發(fā)生了一些變更。

圖片

這...估計(jì)是我切換包管理器導(dǎo)致的。

分析問題

我們項(xiàng)目依賴 antd 的版本是 3.2.2,另外一個(gè)庫(kù) json-schema-editor-visual 依賴于 ntd@^3.1.6。

在 package-lock.json 中,兩個(gè) antd 的版本合成了一個(gè),最后只安裝了 3.2.2? 的版本。這是因?yàn)?json-schema-editor-visual 中使用了 ^3.1.6,并沒有鎖次版本,所以它直接跟外面的同時(shí)下載一個(gè)版本。

回顧以下基礎(chǔ)知識(shí),npm 的版本鎖定的規(guī)則如下:

  • 符號(hào)^:表示主版本固定的情況下,可更新最新版。例如:vuex: "^3.1.3",3.1.3及其以上的3.x.x都是滿足的。
  • 符號(hào)~:表示次版本固定的情況下,可更新最新版。如:vuex: "~3.1.3",3.1.3及其以上的3.1.x都是滿足的。
  • 無(wú)符號(hào):無(wú)符號(hào)表示固定版本號(hào),例如:vuex: "3.1.3",此時(shí)一定是安裝3.1.3版本。

但是在使用 yarn install 之后,發(fā)現(xiàn) json-schema-editor-visual 還是安裝了一個(gè) antd@3.1.6 的版本,導(dǎo)致了出現(xiàn)版本不一致導(dǎo)致的問題。

圖示如下所示:

圖片

如何破局

使用 yarn import。

該命令是 yarn 幫助遷移當(dāng)前所依賴的項(xiàng)目的 package-lock.json,盡可能減少鎖文件和現(xiàn)有依賴樹之間的差異。

在執(zhí)行這個(gè)時(shí)候,還發(fā)現(xiàn)了一個(gè)報(bào)錯(cuò)。

圖片

這個(gè)問題,我一直認(rèn)為是 node 版本的問題,結(jié)果切換 node 版本一直沒法解決,最后還是 Google 幫我解決了問題。從這個(gè) issue 中我找到了答案。

圖片

最后我手動(dòng)修改了 package-lock.json 中的 upath 的版本為 ^1.0.5。

執(zhí)行 yarn import。終于成功了,淚目。

思考與總結(jié)

雖然上面只提到了 antd 的版本不一致導(dǎo)致的問題,實(shí)際上還有其他的問題也是由于版本不一致導(dǎo)致的。所以我們?cè)谇袚Q包管理的時(shí)候,盡可能的保持包版本一致。

一般可以使用官方提供的命令,比如 yarn 的 yarn import?,還有 pnpm 提供的,pnpm import 來(lái)處理是最恰當(dāng)?shù)摹?/p>

責(zé)任編輯:武曉燕 來(lái)源: 前端雜貨鋪
相關(guān)推薦

2020-01-06 09:43:14

賠償TSB遷移

2021-09-05 11:20:04

帶寬網(wǎng)絡(luò)排查

2021-11-01 17:29:02

Windows系統(tǒng)Fork

2020-03-09 11:43:35

RustCargo編程語(yǔ)言

2020-12-03 12:06:54

HarmonyOS

2017-03-20 19:40:29

AndroidSwipeRefres下拉刷新

2017-08-24 17:37:18

DNS緩存分析

2023-04-17 07:36:28

Arch LinuxGUI

2021-07-27 07:12:11

Getter接口Setter

2018-08-23 16:51:40

Linux軟件倉(cāng)庫(kù)包管理器

2021-01-11 05:30:04

Boot 單機(jī)片

2018-12-27 09:09:35

2019-11-04 10:37:53

MongoDB宕機(jī)日志

2023-07-13 09:12:37

CNCF項(xiàng)目云原生

2016-09-12 15:00:46

Linux包管理器新手

2010-05-27 10:12:46

openSUSEYaST

2024-05-13 08:37:17

炫技H5UI

2018-10-15 15:00:42

UnixSysget包管理器

2024-11-12 08:03:27

JavaScript管理器安全

2010-10-08 09:26:17

.NET微軟
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)