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

pnpm v10 來了!這些更新你一定不能錯過

開發(fā) 前端
在包管理工具的賽道上,pnpm 一直是開發(fā)者眼中的 “性能之選”。它通過獨特的硬鏈接機制和優(yōu)秀的性能表現(xiàn),成功的在包管理工具上占據(jù)了一席之地。而就在最近,pnpm v10 正式發(fā)布,這次發(fā)布包含了眾多重大更新和功能改進,尤其是對安全性和性能的提升!

Hello,大家好,我是 Sunday。

在包管理工具的賽道上,pnpm 一直是開發(fā)者眼中的 “性能之選”。它通過獨特的硬鏈接機制和優(yōu)秀的性能表現(xiàn),成功的在包管理工具上占據(jù)了一席之地。

而就在最近,pnpm v10 正式發(fā)布,這次發(fā)布包含了眾多重大更新和功能改進,尤其是對安全性和性能的提升!

今天,咱們就一起來看看 v10 帶來了哪些變化,以及這些變化將如何影響我們的日常開發(fā)。

核心變化一覽

1. 默認禁用依賴生命周期腳本

pnpm v10 默認不再執(zhí)行依賴的生命周期腳本(如 postinstall 和 preinstall)。這是一個顯著的安全增強,可以有效防止惡意腳本在安裝依賴時被執(zhí)行。

如果需要允許某些特定依賴執(zhí)行生命周期腳本,可以在 package.json 中通過 pnpm.onlyBuiltDependencies 字段進行顯式配置。例如:

{
  "pnpm": {
    "onlyBuiltDependencies": ["fsevents"]
  }
}

2. 改進的 pnpm link

pnpm link 的行為在 v10 中進行了優(yōu)化:

  • 工作區(qū)中:pnpm link 現(xiàn)在會將鏈接信息添加到工作區(qū)的根級 package.json,從而讓所有項目都能共享相同的鏈接。
  • 全局鏈接:想要全局鏈接一個包,只需在包的目錄下運行 pnpm link,不再需要額外指定 -g 參數(shù)。

3. 安全性升級:全面切換到 SHA256 哈希算法

pnpm v10 將多個關(guān)鍵部分的哈希算法更新為 SHA256,以提升安全性和一致性:

  • node_modules/.pnpm 中長路徑的哈希。
  • 鎖定文件中的長依賴項哈希。
  • pnpm-lock.yaml 文件的多項校驗值(如 packageExtensionsChecksum 和 sideEffects)。
  • 側(cè)效緩存(Side Effects Cache)的校驗值。

4. 配置管理更加智能

pnpm v10 對配置的管理也進行了優(yōu)化:

  • manage-package-manager-versions 默認啟用:pnpm 會根據(jù) package.json 中的 packageManager 字段自動管理版本。
  • 公共提升(public hoisting)模式更新:默認情況下,不再提升任何包到 node_modules 根目錄。這對依賴沖突的處理更加友好。
  • 減少腳本執(zhí)行中的環(huán)境變量:僅保留必要的環(huán)境變量(如 npm_package_name 和 npm_package_version),減少了不必要的污染。

5. 更智能的依賴安裝

pnpm v10 對依賴安裝的邏輯進行了多處優(yōu)化:

  • 即使 NODE_ENV=production,也會安裝所有依賴。這解決了一些生產(chǎn)環(huán)境下依賴缺失的問題。
  • 更快的重復安裝:在重復執(zhí)行安裝命令時,pnpm 會快速校驗 node_modules 是否已經(jīng)是最新狀態(tài),無需重新生成。
  • 增強的依賴驗證:新增 verify-deps-before-run 設(shè)置,可控制在運行腳本前對依賴的檢查策略(如自動安裝、警告或拋出錯誤)。

6. 全球存儲與索引優(yōu)化

pnpm v10 對全局存儲和依賴索引進行了優(yōu)化:

  • 存儲版本升級到 v10:支持同一內(nèi)容的不同包名或版本共享索引文件,從而提升一致性。
  • 更高效的副作用緩存索引:僅記錄文件差異,而非所有文件,節(jié)省了存儲空間。
  • 更可靠的依賴校驗:通過存儲內(nèi)容哈希和包標識符,確保鎖定文件中的完整性與一致性。

7. 新增支持:配置依賴(Configurational Dependencies)

pnpm v10 引入了一種新的依賴類型 配置依賴(configurational dependencies),這些依賴會在其他依賴之前優(yōu)先安裝。

配置依賴無法擁有自己的依賴或生命周期腳本,必須使用確切的版本號和校驗值進行安裝,例如:

{
  "pnpm": {
    "configDependencies": {
      "my-configs": "1.0.0+sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="
    }
  }
}

責任編輯:武曉燕 來源: 程序員Sunday
相關(guān)推薦

2023-11-12 22:43:53

系統(tǒng)鏡像

2020-08-18 11:21:28

數(shù)據(jù)挖掘機器學習算法

2019-05-28 11:00:17

微軟Windows 105月更新

2018-03-08 10:05:10

2022-01-19 12:15:28

元宇宙開源

2022-11-16 11:55:22

網(wǎng)絡連接命令

2019-11-12 08:53:00

線上命令日志

2015-10-28 14:40:44

LG

2018-03-09 10:34:48

顯卡參數(shù)超頻

2019-04-24 16:40:18

Redis數(shù)據(jù)庫

2021-02-26 09:04:22

數(shù)組ArrayListHashMap

2022-05-02 09:21:25

微信微信支付

2014-12-17 14:21:56

Hybrid App框架工具

2020-04-27 10:34:23

HTTPDNSDNS網(wǎng)絡協(xié)議

2015-10-28 15:15:29

LG

2022-12-26 09:16:45

Guava架構(gòu)模型

2021-05-20 14:50:03

加密貨幣比特幣數(shù)據(jù)

2020-09-16 18:44:34

JavaScript書籍開發(fā)者

2017-01-19 17:57:47

大數(shù)據(jù)

2014-10-29 14:52:13

程序員
點贊
收藏

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