什么是 Volta
Volta 是一種管理 JavaScript 命令行工具的便捷方式。
volta 的特點:
- 速度
- 無縫,每個項目的版本切換
- 跨平臺支持,包括 Windows 和所有 Unix shell
- 支持多個包管理器
- 穩(wěn)定的工具安裝-無需每次升級都重新安裝!
- 可擴展性掛鉤用于特定于站點的定制
為什么選擇 Volta?
使用 Volta,您可以一次選擇 Node 引擎,然后不再擔心它。您可以在項目之間切換,而不必手動切換 nodejs 版本。你可以在工具鏈中安裝 npm 二進制包,而不必定期重新安裝它們,或者弄清楚它們停止工作的原因。
快速設置和切換 Node 版本
獲取并使用特定版本的 Node:
volta install node@14
您應該立即注意到該工具的響應速度有多快。您的開發(fā)時間是寶貴的 JavaScript 開發(fā)人員應該擁有時髦的工具。
為合作者提供可復制的環(huán)境
Volta 允許你用一個命令為一個項目選擇節(jié)點引擎和包管理器:
volta pin node@12
Volta 將 node 引擎的準確版本保存在 package.json,這樣你就可以把你的選擇提交給 git。從那時起,每次在項目目錄中運行 Node 時,Volta 都會自動切換到您選擇的同一版本 的 Node。類似的。所有的合作者都可以通過在他們的開發(fā)機器上安裝 Volta 來做同樣的事情。
Install and forget
Volta 還允許您將最喜歡的二進制包作為命令行工具安裝,而不必擔心它們會干擾您的開發(fā)項目。更好的是,這些工具在安裝時被固定到特定的 Node 引擎上,除非您顯式地告訴它們,否則它們不會更改。這意味著一旦一個工具工作了,它就會繼續(xù)工作。
npm install -g surgesurge -h
安裝 Volta
在安裝 Volta 前, 如果有使用其它的 nodejs 管理工具/nodejs,可以提前卸載(非必須)。
Unix 安裝
在大多數(shù) Unix 系統(tǒng)(包括 macOS)上,您可以使用一個命令安裝 Volta:
curl https://get.volta.sh | bash
對于 bash, zsh 和 fish,這個安裝程序將自動更新控制臺啟動腳本。如果您希望防止修改控制臺啟動腳本,請參閱跳過 Volta 設置。要手動配置你的 shell 使用 Volta,編輯你的控制臺啟動腳本如下:
- 將 VOLTA_HOME 變量設置為 $HOME/.volta
- 將 $VOLTA_HOME/bin 添加到 PATH 變量的開頭
Windows 安裝
對于 Windows,下載并運行 Windows 安裝程序并按照說明操作。
Volta 的功能依賴于創(chuàng)建符號鏈接,所以你必須:
啟用開發(fā)者模式(推薦)
以提升的權限運行 Volta(不推薦)
Windows 下的 linux 子系統(tǒng)
如果您在 Linux 的 Windows 子系統(tǒng)中使用 Volta,請遵循上面的 Unix 安裝指南。
使用 Volta
Volta 的工作是管理 JavaScript 命令行工具,如 node、npm、yarn 或作為 JavaScript 包的一部分發(fā)布的可執(zhí)行文件。
與包管理器類似,Volta 會根據(jù)當前目錄跟蹤您正在處理的項目(如果有的話)。Volta 工具鏈中的工具會自動檢測您所處的項目是否使用特定版本的工具,并為您路由到正確的工具版本。
管理您的工具鏈
您可以使用兩個命令控制由 Volta 工具鏈管理的工具: Volta install 和 Volta uninstall。
安裝 node 引擎
要將工具安裝到工具鏈中,需要設置該工具的默認版本。Volta 將始終使用這個默認值,除非您在一個已配置 Volta 使用不同版本的項目目錄中工作。當您選擇默認版本時,Volta 也會將該版本下載到本地緩存中。
例如,您可以選擇 node 的確切版本作為默認版本:
volta install node@14.15.5
你不需要指定一個精確的版本,在這種情況下,Volta 會選擇一個合適的版本來匹配你的請求:
volta install node@14
你也可以指定最新版本,或者甚至完全不選擇版本,Volta 將選擇最新的 LTS 版本:
volta install node
一旦您運行了這些命令中的一個,在您的 PATH 環(huán)境(或 Windows 中的 PATH)中由 Volta 提供的節(jié)點可執(zhí)行文件將在默認情況下自動運行您選擇的 node 版本。
同樣地,你可以使用 volta install npm 和 volta install Yarn 分別選擇 npm 和 Yarn 包管理器的版本。這些工具將使用您選擇的 Node 的默認版本運行。
安裝二進制包
使用 Volta,使用包管理器全局安裝命令行工具也會將其添加到工具鏈中。例如,vuepress 包包含一個同名的可執(zhí)行文件:
yarn global add vuepress
當您將一個包安裝到工具鏈上時,Volta 會獲取當前的默認 Node 版本,并將該工具固定到該引擎上(有關更多信息,請參閱包二進制文件)。 Volta 不會改變工具的固定引擎,除非你更新工具,無論如何。這樣,您就可以確信您安裝的工具不會在您背后更改。
管理您的項目
Volta 允許團隊或協(xié)作者社區(qū)標準化他們在項目中使用的開發(fā)工具。
固定 Node 引擎
volta pin 命令允許您為項目選擇 Node 引擎和包管理器版本:
volta pin node@12.20volta pin yarn@1.19
Volta 會把這個放在你的 package.json,這樣你就可以把你選擇的工具提交到版本控制:
"volta": { "node": "12.20.2", "yarn": "1.19.2"}
這樣,每個使用 Volta 在項目上工作的人都會自動獲得您選擇的相同版本。
node --version # 12.20.2yarn --version # 1.19.2
使用項目工具
node 和包管理器可執(zhí)行文件并不是工具鏈中唯一的智能工具:工具鏈中的包二進制文件也知道您的當前目錄,并尊重您所在項目的配置。
例如,安裝 Typescript 包會將編譯器 tsc 添加到你的工具鏈中:
npm install --global typescript
根據(jù)你所在的項目,這個可執(zhí)行文件會切換到項目選擇的 TypeScript 版本:
cd /path/to/project-using-typescript-3.9.4tsc --version # 3.9.4cd /path/to/project-using-typescript-4.1.5tsc --version # 4.1.5
安全方便
因為 Volta 的工具鏈總是跟蹤你在哪里,它確保你使用的工具總是尊重你正在做的項目的設置。這意味著您不必擔心在項目之間切換時更改已安裝軟件的狀態(tài)。
更重要的是,當 Volta 運行一個工具時,它會覆蓋它的軌跡,確保你的 npm 或 Yarn 腳本永遠不會看到你的工具鏈中有什么。
這兩個特性的結合意味著 Volta 解決了全局包的問題。換句話說,Volta 為您提供了全局包安裝的便利,但沒有危險。
例如,你可以使用 npm i -g typescript 安全地安裝 TypeScript,并享受直接調(diào)用 tsc 的便利無需擔心項目的包腳本可能意外地依賴于您的機器的全局狀態(tài)。
Pnpm 支持
對 pnpm 的支持目前是實驗性的。要啟用該功能,請確保環(huán)境變量 VoLTA_FEATURE_PNPM 設置為 1。在 Windows 上可以添加到環(huán)境變量中。在 Linux/Mac 上,您可以在配置文件腳本中設置該值(例如 .bash_profile、.zshrc 或類似的腳本)。
已知的限制:
全局安裝:目前不支持全局安裝(例如 pnpm install -g),并且會導致錯誤。
遷移:目前還沒有自動遷移功能,因此如果您以前將 pnpm 作為 Volta 全局文件安裝,則需要通過調(diào)用 Volta install pnpm 手動重新安裝它。在啟用支持并重新安裝之前,您可以通過 volta uninstall pnpm 卸載之前安裝的 pnpm 包。一旦切換到本機 pnpm 支持,由于目前缺乏卸載實現(xiàn),可能無法通過調(diào)用相同的命令來刪除孤立的舊 pnpm 包。
Volta 命令
Volta 1.1.1The JavaScript Launcher ? To install a tool in your toolchain, use `volta install`. To pin your project's runtime or package manager, use `volta pin`.USAGE: volta [FLAGS] [SUBCOMMAND]FLAGS: --verbose Enables verbose diagnostics --quiet Prevents unnecessary output -v, --version Prints the current version of Volta -h, --help Prints help informationSUBCOMMANDS: fetch Fetches a tool to the local machine install Installs a tool in your toolchain uninstall Uninstalls a tool from your toolchain pin Pins your project's runtime or package manager list Displays the current toolchain completions Generates Volta completions which Locates the actual binary that will be called by Volta setup Enables Volta for the current user / shell run Run a command with custom Node, npm, pnpm, and/or Yarn versions help Prints this message or the help of the given subcommand(s)
volta fetch 將工具緩存到本地機器以供離線使用
volta install 設置工具的默認版本
volta uninstall 從工具鏈中卸載工具
volta pin 固定項目的運行時或包管理器
volta list 顯示當前工具鏈
volta completions 命令補全
volta which 查看 volta 安裝的工具的目錄
volta setup 為當前用戶/shell 啟用 volta
volta run 運行帶有自定義Node、npm、pnpm和/或Yarn版本的命令
volta help 輸出幫助信息
結束語
如果你在工作中遇到有多個項目使用不同版本的 nodejs,就來試試Volta吧!
比 nvm 更好用的 node 版本管理工具
原文鏈接:https://juejin.cn/post/7275608678828916755
版權聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。