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

當(dāng)前位置:首頁 > 科技  > 軟件

快試試 save exact,防止你的項(xiàng)目依賴版本滑動(dòng)

來源: 責(zé)編: 時(shí)間:2023-11-02 09:09:17 284觀看
導(dǎo)讀如果你正在構(gòu)建一個(gè)生產(chǎn)應(yīng)用程序,你并不總是希望讓你項(xiàng)目的依賴項(xiàng)自動(dòng)更新,即使您只指定了一個(gè) PATCH 更新,由于有數(shù)百個(gè)互操作包,因此有可能出現(xiàn)未經(jīng)測(cè)試的更新會(huì)毀掉你的項(xiàng)目,那么你一樣要試試 save-exact。在開發(fā)過程中

如果你正在構(gòu)建一個(gè)生產(chǎn)應(yīng)用程序,你并不總是希望讓你項(xiàng)目的依賴項(xiàng)自動(dòng)更新,即使您只指定了一個(gè) PATCH 更新,由于有數(shù)百個(gè)互操作包,因此有可能出現(xiàn)未經(jīng)測(cè)試的更新會(huì)毀掉你的項(xiàng)目,那么你一樣要試試 save-exact。在開發(fā)過程中以及使用應(yīng)用程序時(shí),可以安全地允許補(bǔ)丁或次要更新。Jv428資訊網(wǎng)——每日最新資訊28at.com

我們先來看一個(gè)最簡(jiǎn)單的測(cè)試,例如我在項(xiàng)目依賴了兩個(gè)包:Jv428資訊網(wǎng)——每日最新資訊28at.com

"devDependencies": {  "@babel/cli": "^7.10.5",  "@babel/plugin-transform-runtime": "^7.11.0"}

當(dāng)刪除 node_modules 文件夾并運(yùn)行時(shí) npm install,已安裝軟件包的版本可能會(huì)在更高版本可用時(shí)更新,原因是安裝的依賴產(chǎn)生了滑動(dòng),這可能會(huì)破壞應(yīng)用程序,不同版本的的特效可能存在不一致的場(chǎng)景,這其實(shí)是非常危險(xiǎn)的。Jv428資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Jv428資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Jv428資訊網(wǎng)——每日最新資訊28at.com

^ 會(huì)匹配最新的大版本依賴包,比如 ^1.2.3 會(huì)匹配所有 1.x.x 的包,包括 1.3.0,但是不包括 2.0.0。Jv428資訊網(wǎng)——每日最新資訊28at.com

save-exact

使用 save-exact 后,保存到 package.json 的依賴項(xiàng)將使用精確的版本進(jìn)行配置,而不是使用 npm 的默認(rèn) semver 范圍運(yùn)算符。Jv428資訊網(wǎng)——每日最新資訊28at.com

使用

在項(xiàng)目中可以通過 .npmrc / .yarnrc 來對(duì) save-exact 進(jìn)行配置。Jv428資訊網(wǎng)——每日最新資訊28at.com

#.npmrcsave-exact=true
#.yarnrcsave-prefix ~

當(dāng)我們?cè)俅伟惭b使用 yarn add react 時(shí),你會(huì)發(fā)現(xiàn)不會(huì)有滑動(dòng)版本。Jv428資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Jv428資訊網(wǎng)——每日最新資訊28at.com

.npmrc / .yarnrc 的配置是項(xiàng)目級(jí)別的。你也可以針對(duì)某一個(gè)依賴使用 save-exact。例如:Jv428資訊網(wǎng)——每日最新資訊28at.com

yarn add react --save-exact

圖片圖片Jv428資訊網(wǎng)——每日最新資訊28at.com

這樣也能達(dá)到同樣的效果。并且你還可以通過設(shè)置用戶級(jí)別的 npm config 來達(dá)到效果。Jv428資訊網(wǎng)——每日最新資訊28at.com

npm config set save-exact true

不過這里需要注意的是,它們是有優(yōu)先級(jí)的。Jv428資訊網(wǎng)——每日最新資訊28at.com

配置優(yōu)先級(jí)

除了命令行 save-exact,當(dāng)我們?cè)谑褂?npmrc 配置時(shí),按照依賴會(huì)檢查配置,其實(shí)就是檢查 .npmrc 的配置,在我們的電腦中存在多個(gè) .npmrc 的配置。Jv428資訊網(wǎng)——每日最新資訊28at.com

1.項(xiàng)目中的 .npmrc

圖片圖片Jv428資訊網(wǎng)——每日最新資訊28at.com

項(xiàng)目下 .npmrc 文件的優(yōu)先級(jí)最高,可以給每個(gè)項(xiàng)目配置不同的鏡像,項(xiàng)目之間的配置互不影響。 在項(xiàng)目的根目錄下新建 .npmrc 文件,在里面以 key=value 的格式進(jìn)行配置。Jv428資訊網(wǎng)——每日最新資訊28at.com

save-exact=true

2.用戶配置的 .npmrc(~/.npmrc)

圖片圖片Jv428資訊網(wǎng)——每日最新資訊28at.com

可以通過 npm config get userconfig 命令獲取用戶配置的 .npmrc 文件在哪里。Jv428資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Jv428資訊網(wǎng)——每日最新資訊28at.com

可以通過 npm config set 命令設(shè)置用戶級(jí)別的 .npmrc 配置。Jv428資訊網(wǎng)——每日最新資訊28at.com

npm config set registry https://registry.npm.taobao.org

如果想刪除可以直接編輯文件,或者使用 npm config delete registry 命令來進(jìn)行刪除。Jv428資訊網(wǎng)——每日最新資訊28at.com

3.全局配置的 .npmrc

圖片圖片Jv428資訊網(wǎng)——每日最新資訊28at.com

可以通過 npm config get prefix 命令獲取全局配置的 .npmrc 文件的前綴地址,Jv428資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Jv428資訊網(wǎng)——每日最新資訊28at.com

記住是前綴地址,不是完整地址。完整地址是{$prefix}/etc/npmrc。 但是如果你從來沒有全局配置過,就不會(huì)存在這個(gè)文件。 也可以通過命令行來進(jìn)行全局 .npmrc 文件的配置。Jv428資訊網(wǎng)——每日最新資訊28at.com

npm config set registry https://registry.npm.taobao.org -g

4.npm 內(nèi)置的 .npmrc

npm 內(nèi)置 .npmrc 配置文件和 npm 同級(jí),所以可以通過獲取 npm 的路徑,來找到 npm 內(nèi)置的 .npmrc 文件。 可以通過 which npm 來獲取 npm 的路徑,也就找到了 npm 內(nèi)置的 .npmrc 文件。Jv428資訊網(wǎng)——每日最新資訊28at.com

圖片圖片Jv428資訊網(wǎng)——每日最新資訊28at.com

npm install 執(zhí)行之后,首先,檢查并獲取 npm 配置,這里的優(yōu)先級(jí)為:項(xiàng)目級(jí)的 .npmrc 文件 > 用戶級(jí)的 .npmrc 文件> 全局級(jí)的 .npmrc 文件 > npm 內(nèi)置的 .npmrc 文件。Jv428資訊網(wǎng)——每日最新資訊28at.com

當(dāng)我們?cè)趫?zhí)行安裝命令之后,如果命令行中不包含  save-exact,然后檢查并獲取 npm 配置中的 save-exact,這里的優(yōu)先級(jí)為:項(xiàng)目級(jí)的 .npmrc 文件 > 用戶級(jí)的 .npmrc 文件> 全局級(jí)的 .npmrc 文件 > npm 內(nèi)置的 .npmrc 文件。Jv428資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

使用 save-exact 可以在項(xiàng)目安裝依賴時(shí),保存到 package.json 的依賴項(xiàng)將使用精確的版本進(jìn)行配置,而不是使用 npm 的默認(rèn) semver 范圍運(yùn)算符。在開發(fā)過程中以及使用應(yīng)用程序時(shí),可以安全地允許補(bǔ)丁或次要更新。Jv428資訊網(wǎng)——每日最新資訊28at.com

參考

https://docs.npmjs.com/cli/v10/commands/npm-install#save-exactJv428資訊網(wǎng)——每日最新資訊28at.com

https://teamtreehouse.com/community/why-install-npm-packages-as-saveexactJv428資訊網(wǎng)——每日最新資訊28at.com

https://stackoverflow.com/questions/58638817/what-is-the-purpose-of-using-save-exactJv428資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-16518-0.html快試試 save exact,防止你的項(xiàng)目依賴版本滑動(dòng)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Next.js的崛起:為什么它是現(xiàn)代網(wǎng)站的首選全棧框架

下一篇: 深入了解Python類與面向?qū)ο缶幊?/a>

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 翁源县| 宁远县| 云霄县| 紫阳县| 广宗县| 饶河县| 永和县| 离岛区| 兖州市| 横峰县| 轮台县| 含山县| 河北区| 青州市| 永胜县| 彰武县| 肥西县| 绿春县| 石泉县| 明星| 石家庄市| 五华县| 剑阁县| 平昌县| 桐梓县| 宝兴县| 泗阳县| 太仆寺旗| 沛县| 门源| 页游| 通许县| 嵊泗县| 绵阳市| 吉木萨尔县| 东丰县| 贵阳市| 泸水县| 高清| 淳安县| 靖安县|