Volta
是一種管理 JavaScript 命令列工具的便捷方式。
volta
的特點:
使用 Volta,您可以一次選擇 Node 引擎,然後不再擔心它。您可以在專案之間切換,而不必手動切換 nodejs 版本。你可以在工具鏈中安裝 npm 二進位制包,而不必定期重新安裝它們,或者弄清楚它們停止工作的原因。
獲取並使用特定版本的 Node:
volta install node@14
您應該立即注意到該工具的響應速度有多快。您的開發時間是寶貴的 JavaScript 開發人員應該擁有時髦的工具。
Volta 允許你用一個命令為一個專案選擇節點引擎和包管理器:
volta pin node@12
Volta 將 Node 引擎的準確版本儲存在 package.json
,這樣你就可以把你的選擇提交給 git。從那時起,每次在專案目錄中執行 Node 時,Volta 都會自動切換到您選擇的同一版本 的 Node。類似的。所有的合作者都可以通過在他們的開發機器上安裝 Volta 來做同樣的事情。
Volta 還允許您將最喜歡的二進位制包作為命令列工具安裝,而不必擔心它們會干擾您的開發專案。更好的是,這些工具在安裝時被固定到特定的 Node 引擎上,除非您顯式地告訴它們,否則它們不會更改。這意味著一旦一個工具工作了,它就會繼續工作。
npm install -g surge
surge -h
在安裝 Volta 前, 如果有使用其它的 nodejs 管理工具/nodejs,可以提前解除安裝(非必須)。
在大多數 Unix 系統(包括 macOS)上,您可以使用一個命令安裝 Volta:
curl https://get.volta.sh | bash
對於 bash, zsh 和
fish,這個安裝程式將自動更新控制檯啟動指令碼。如果您希望防止修改控制檯啟動指令碼,請參閱跳過 Volta 設定。要手動設定你的 shell 使用 Volta,編輯你的控制檯啟動指令碼如下:
VOLTA_HOME
變數設定為 $HOME/.volta
$VOLTA_HOME/bin
新增到 PATH 變數的開頭對於 Windows,下載並執行 Windows 安裝程式並按照說明操作。
Volta 的功能依賴於建立符號連結,所以你必須:
- 啟用開發者模式(推薦)
- 以提升的許可權執行 Volta(不推薦)
如果您在 Linux 的 Windows 子系統中使用 Volta,請遵循上面的 Unix 安裝指南。
Volta 的工作是管理 JavaScript 命令列工具,如 node、npm、yarn 或作為 JavaScript 包的一部分發布的可執行檔案。
與包管理器類似,Volta 會根據當前目錄跟蹤您正在處理的專案(如果有的話)。Volta 工具鏈中的工具會自動檢測您所處的專案是否使用特定版本的工具,併為您路由到正確的工具版本。
您可以使用兩個命令控制由 Volta 工具鏈管理的工具: Volta install
和 Volta uninstall
。
要將工具安裝到工具鏈中,需要設定該工具的預設版本。Volta 將始終使用這個預設值,除非您在一個已設定 Volta 使用不同版本的專案目錄中工作。當您選擇預設版本時,Volta 也會將該版本下載到本地快取中。
例如,您可以選擇 node 的確切版本作為預設版本:
volta install [email protected]
你不需要指定一個精確的版本,在這種情況下,Volta 會選擇一個合適的版本來匹配你的請求:
volta install node@14
你也可以指定最新版本,或者甚至完全不選擇版本,Volta 將選擇最新的 LTS 版本:
volta install node
一旦您執行了這些命令中的一個,在您的 PATH 環境(或 Windows 中的 PATH)中由 Volta 提供的節點可執行檔案將在預設情況下自動執行您選擇的 node 版本。
同樣地,你可以使用 volta install npm
和 volta install Yarn
分別選擇 npm 和 Yarn 包管理器的版本。這些工具將使用您選擇的 Node 的預設版本執行。
使用 Volta,使用包管理器全域性安裝命令列工具也會將其新增到工具鏈中。例如,vuepress
包包含一個同名的可執行檔案:
yarn global add vuepress
當您將一個包安裝到工具鏈上時,Volta 會獲取當前的預設 Node 版本,並將該工具固定到該引擎上(有關更多資訊,請參閱包二進位制檔案)。
Volta 不會改變工具的固定引擎,除非你更新工具,無論如何。這樣,您就可以確信您安裝的工具不會在您背後更改。
Volta 允許團隊或共同作業者社群標準化他們在專案中使用的開發工具。
volta pin 命令允許您為專案選擇 Node 引擎和包管理器版本:
volta pin [email protected]
volta pin [email protected]
Volta 會把這個放在你的 package.json,這樣你就可以把你選擇的工具提交到版本控制:
"volta": {
"node": "12.20.2",
"yarn": "1.19.2"
}
這樣,每個使用 Volta 在專案上工作的人都會自動獲得您選擇的相同版本。
node --version # 12.20.2
yarn --version # 1.19.2
node 和包管理器可執行檔案並不是工具鏈中唯一的智慧工具:工具鏈中的包二進位制檔案也知道您的當前目錄,並尊重您所在專案的設定。
例如,安裝 Typescript 包會將編譯器 tsc 新增到你的工具鏈中:
npm install --global typescript
根據你所在的專案,這個可執行檔案會切換到專案選擇的 TypeScript 版本:
cd /path/to/project-using-typescript-3.9.4
tsc --version # 3.9.4
cd /path/to/project-using-typescript-4.1.5
tsc --version # 4.1.5
因為 Volta 的工具鏈總是跟蹤你在哪裡,它確保你使用的工具總是尊重你正在做的專案的設定。這意味著您不必擔心在專案之間切換時更改已安裝軟體的狀態。
更重要的是,當 Volta 執行一個工具時,它會覆蓋它的軌跡,確保你的 npm 或 Yarn 指令碼永遠不會看到你的工具鏈中有什麼。
這兩個特性的結合意味著 Volta 解決了全域性包的問題。換句話說,Volta 為您提供了全域性包安裝的便利,但沒有危險。
例如,你可以使用 npm i -g typescript
安全地安裝 TypeScript,並享受直接呼叫 tsc 的便利無需擔心專案的包指令碼可能意外地依賴於您的機器的全域性狀態。
對 pnpm 的支援目前是實驗性的。要啟用該功能,請確保環境變數 VoLTA_FEATURE_PNPM
設定為 1
。在 Windows 上可以新增到環境變數中。在 Linux/Mac 上,您可以在組態檔指令碼中設定該值(例如 .bash_profile
、.zshrc
或類似的指令碼)。
已知的限制:
全域性安裝:目前不支援全域性安裝(例如 pnpm install -g),並且會導致錯誤。
遷移:目前還沒有自動遷移功能,因此如果您以前將 pnpm 作為 Volta 全域性檔案安裝,則需要通過呼叫
Volta install pnpm
手動重新安裝它。在啟用支援並重新安裝之前,您可以通過volta uninstall pnpm
解除安裝之前安裝的 pnpm 包。一旦切換到本機 pnpm 支援,由於目前缺乏解除安裝實現,可能無法通過呼叫相同的命令來刪除孤立的舊 pnpm 包。
Volta 1.1.1
The 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 information
SUBCOMMANDS:
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
吧!