成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全新JavaScript包管理器,速度太快了!

開發 前端
Bun 是去年爆火的一個全新 JavaScript 運行時,Github Star 一直蹭蹭的漲。不過,感覺還是看熱鬧的多,真正在用的又有多少呢?

最近,由 Node.js 創始人 Ryan Dahl 親自設計并開發的更安全、更可靠的JavaScript 和 TypeScript 運行時環境 Deno 正式發布 2.0 版本。在新版本中,Deno 支持向后兼容 Node 和 npm。這樣,不僅可以在當前的 Node.js 項目中運行 Deno,還可以逐步采用 Deno 的一體化工具鏈。因此,現在我們可以將 Deno 作為一個 JavaScript 包管理器單獨使用。與此同時,去年備受矚目的全新 JavaScript 運行時 Bun,同樣支持作為 JavaScript 包管理器獨立使用。下面就來深入了解一下這兩個很新的 JavaScript 包管理器!

Deno

Deno 2 與 Node 和 npm 的兼容性非常強。Deno 2 能夠理解 package.json、node_modules文件夾甚至 npm 工作區,因此可以在使用 ESM 的任何 Node 項目中運行 Deno。

圖片圖片

依賴源

Deno 不僅支持從 npm 和 JSR 等源添加依賴項,還允許通過 URL 直接加載模塊。這種靈活性使得開發者可以輕松地集成來自不同源的代碼庫,而無需擔心兼容性問題。同時,Deno 還提供了對 monorepo 的支持,使得在同一個倉庫中管理多個項目變得容易。

JSR:Deno 推出的全新 JavaScript 注冊表,類似于 npm,官網:https://jsr.io/。

命令

Deno 2 不僅支持package.json和node_modules文件,還附帶三個重要的子命令,可讓輕松安裝和管理依賴項。包括:

  • deno install:用于安裝配置文件中列出的所有依賴項。這個命令類似于npm的npm install。
  • deno remove:用于從項目的配置文件中刪除依賴項。這個命令可以同時處理deno.json和package.json中的依賴項。
  • deno add:用于將依賴項添加到項目的配置文件中,這些配置文件可以是deno.json或package.json。這個命令會根據提供的依賴類型(npm或JSR)將依賴項添加到相應的配置文件中。

性能

Deno 使用硬鏈接(在Linux上)和clonefile(在macOS上)來優化空間和速度。這種設計避免了冗余副本,同時在多個位置顯示相同的文件,從而最小化磁盤使用量,并加快安裝速度。特別是在 monorepos 或具有共享依賴項的項目中,這種性能提升尤為明顯。

經過測試,deno install 在沒有緩存的情況下比 npm install 快 15 %, 在有緩存的情況下比 npm install 快 90%,甚至比 Bun 還要快。

測試結果由 Deno 官方提供測試結果由 Deno 官方提供

新功能

除此上面提到的功能,Deno 團隊還在不斷開發新功能,包括deno update和deno outdated等,這些功能將進一步增強Deno的包管理能力。

Bun

Bun 是去年爆火的一個全新 JavaScript 運行時,Github Star 一直蹭蹭的漲。不過,感覺還是看熱鬧的多,真正在用的又有多少呢?不過,Bun 致力于打造一個全能的 JavaScript 工具鏈,官方把它成為 all-in-one 工具,這個點還是很吸引的人的。當然,Bun 是可以單獨作為一個 JavaScript 包管理工具使用的。

圖片圖片

作為一個 JavaScript 包管理工具,Bun 的特點如下:

  • Node.js 兼容性:Bun包管理器設計為可以與Node.js項目兼容。它可以在任何包含package.json的項目中使用,并支持工作區(workspaces)、Git/HTTP/tarball依賴項、自定義注冊表等。這意味著,即使不使用Bun運行時,也可以使用Bun包管理器來管理 Node.js 項目依賴項。
  • 支持工作區:Bun 原生支持工作區。它會讀取 package.json 中的 workspaces ,并一次性安裝所有工作區包。
  • 全局安裝緩存:當安裝一個包時,Bun會將其下載到一個全局包緩存中。在未來的安裝中,Bun會首先檢查緩存,以避免不必要的重新下載。
  • 優化的文件寫入:當從緩存中寫入文件到node_modules時,Bun使用操作系統上可用的最快系統調用。這比像pnpm那樣簡單地從全局緩存創建符號鏈接要快得多。
  • 熟悉的API:Bun的API對于npm、pnpm或yarn的用戶來說看起來會很熟悉??梢园惭b大型項目的所有依賴項,添加或刪除生產、開發或對等依賴項,并指定版本、版本范圍或標簽。
  • 二進制鎖文件:安裝完成后,Bun會創建一個二進制bun.lockb文件。二進制格式使得讀取和解析比基于JSON或Yaml的鎖文件快得多。鎖文件存儲了每個依賴項的解析版本和解析依賴樹的元數據,使得未來的安裝幾乎可以立即完成。
  • 默認安全性:Bun 不會隨意運行 postinstall 腳本。一組流行的包會自動進行預驗證;其他包可以使用package.json中的privilegedDependencies字段進行白名單處理。

下面是 Bun 與其他熱門 JavaScript 包管理工具在有緩存的情況下的性能對比:

圖片圖片

測試結果由 Bun 官方提供

責任編輯:武曉燕 來源: 前端充電寶
相關推薦

2024-11-22 12:53:34

JavaScript包管理器機制

2020-03-09 11:43:35

RustCargo編程語言

2020-12-03 12:06:54

HarmonyOS

2019-02-19 08:46:57

物聯網IOT物聯網設備

2010-10-08 09:26:17

.NET微軟

2023-04-17 07:36:28

Arch LinuxGUI

2010-01-06 16:33:24

Ubuntu軟件包

2018-08-23 16:51:40

Linux軟件倉庫包管理器

2021-07-27 12:58:46

Linux包管理器安命令

2024-02-26 10:30:27

Biome開發前端

2024-01-22 06:55:09

BiomeWeb 應用Prettier

2016-09-12 15:00:46

Linux包管理器新手

2010-05-27 10:12:46

openSUSEYaST

2022-03-21 21:28:00

Homebrew包管理器Linux

2010-01-05 10:14:09

Ubuntu軟件包

2009-06-08 10:27:43

2018-10-15 15:00:42

UnixSysget包管理器

2013-11-20 15:32:13

紅帽RedHatYUM包

2022-02-28 10:22:08

前端管理工具

2009-02-20 10:54:24

Windows 7游戲管理器全新
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品三级久久久久久电影 | 一本色道精品久久一区二区三区 | 久热电影| 国产亚洲欧美在线 | 亚洲国产精品一区二区久久 | 日韩一区二区三区在线 | 欧美一区二区三区视频在线观看 | 91精品国产一区二区三区动漫 | 亚洲91视频 | h片免费在线观看 | 国产成人综合在线 | 久久在线视频 | 秋霞电影院午夜伦 | 波多野结衣一区二区 | 成人激情视频 | 国产一区免费视频 | 国产免费一区 | 欧美激情在线精品一区二区三区 | 二区av | 国产精品 亚洲一区 | 国产一二三区精品视频 | 国产精品黄色 | 久久综合成人精品亚洲另类欧美 | 欧美精品综合 | 亚洲视频在线免费 | 91精品久久久久久久久 | 亚洲国产aⅴ精品 | 中文字幕在线一区 | 日本精品视频在线观看 | 久久国产精品亚洲 | 中文字幕一区二区三区四区 | 久久av资源网 | 国产二区三区 | 国产一区欧美一区 | 国产专区在线 | 草草视频在线观看 | 亚洲欧洲日本国产 | 亚洲第一av网站 | 一区二区av | 国产精品特级毛片一区二区三区 | 国产福利91精品 |