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

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

開(kāi)發(fā) 前端
Bun 是去年爆火的一個(gè)全新 JavaScript 運(yùn)行時(shí),Github Star 一直蹭蹭的漲。不過(guò),感覺(jué)還是看熱鬧的多,真正在用的又有多少呢?

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

Deno

Deno 2 與 Node 和 npm 的兼容性非常強(qiáng)。Deno 2 能夠理解 package.json、node_modules文件夾甚至 npm 工作區(qū),因此可以在使用 ESM 的任何 Node 項(xiàng)目中運(yùn)行 Deno。

圖片圖片

依賴源

Deno 不僅支持從 npm 和 JSR 等源添加依賴項(xiàng),還允許通過(guò) URL 直接加載模塊。這種靈活性使得開(kāi)發(fā)者可以輕松地集成來(lái)自不同源的代碼庫(kù),而無(wú)需擔(dān)心兼容性問(wèn)題。同時(shí),Deno 還提供了對(duì) monorepo 的支持,使得在同一個(gè)倉(cāng)庫(kù)中管理多個(gè)項(xiàng)目變得容易。

JSR:Deno 推出的全新 JavaScript 注冊(cè)表,類(lèi)似于 npm,官網(wǎng):https://jsr.io/。

命令

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

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

性能

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

經(jīng)過(guò)測(cè)試,deno install 在沒(méi)有緩存的情況下比 npm install 快 15 %, 在有緩存的情況下比 npm install 快 90%,甚至比 Bun 還要快。

測(cè)試結(jié)果由 Deno 官方提供測(cè)試結(jié)果由 Deno 官方提供

新功能

除此上面提到的功能,Deno 團(tuán)隊(duì)還在不斷開(kāi)發(fā)新功能,包括deno update和deno outdated等,這些功能將進(jìn)一步增強(qiáng)Deno的包管理能力。

Bun

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

圖片圖片

作為一個(gè) JavaScript 包管理工具,Bun 的特點(diǎn)如下:

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

下面是 Bun 與其他熱門(mén) JavaScript 包管理工具在有緩存的情況下的性能對(duì)比:

圖片圖片

測(cè)試結(jié)果由 Bun 官方提供

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

2024-11-22 12:53:34

JavaScript包管理器機(jī)制

2020-03-09 11:43:35

RustCargo編程語(yǔ)言

2020-12-03 12:06:54

HarmonyOS

2019-02-19 08:46:57

物聯(lián)網(wǎng)IOT物聯(lián)網(wǎng)設(shè)備

2010-10-08 09:26:17

.NET微軟

2023-04-17 07:36:28

Arch LinuxGUI

2018-08-23 16:51:40

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

2021-07-27 12:58:46

Linux包管理器安命令

2010-01-06 16:33:24

Ubuntu軟件包

2010-01-05 10:14:09

Ubuntu軟件包

2016-09-12 15:00:46

Linux包管理器新手

2022-03-21 21:28:00

Homebrew包管理器Linux

2010-05-27 10:12:46

openSUSEYaST

2022-02-28 10:22:08

前端管理工具

2018-10-15 15:00:42

UnixSysget包管理器

2013-11-20 15:32:13

紅帽RedHatYUM包

2024-02-26 10:30:27

Biome開(kāi)發(fā)前端

2024-01-22 06:55:09

BiomeWeb 應(yīng)用Prettier

2009-02-20 10:54:24

Windows 7游戲管理器全新

2021-11-11 11:13:20

js Npm基礎(chǔ)
點(diǎn)贊
收藏

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