node版本管理器Volta的簡(jiǎn)單使用
Volta是一款強(qiáng)大的JavaScript工具管理器,它簡(jiǎn)化了命令行工具的安裝和管理。通過(guò)Volta,開(kāi)發(fā)者可以輕松地在多個(gè)項(xiàng)目中切換和配置Node.js、npm以及其它JavaScript工具版本,提高開(kāi)發(fā)效率和環(huán)境一致性。
什么是 Volta
Volta 是一種管理 JavaScript 命令行工具的便捷方式。
volta 的特點(diǎn):
- 速度
- 無(wú)縫,每個(gè)項(xiàng)目的版本切換
- 跨平臺(tái)支持,包括 Windows 和所有 Unix shell
- 支持多個(gè)包管理器
- 穩(wěn)定的工具安裝-無(wú)需每次升級(jí)都重新安裝!
- 可擴(kuò)展性掛鉤用于特定于站點(diǎn)的定制
為什么選擇 Volta?
使用 Volta,您可以一次選擇 Node 引擎,然后不再擔(dān)心它。您可以在項(xiàng)目之間切換,而不必手動(dòng)切換 nodejs 版本。你可以在工具鏈中安裝 npm 二進(jìn)制包,而不必定期重新安裝它們,或者弄清楚它們停止工作的原因。
快速設(shè)置和切換 Node 版本
獲取并使用特定版本的 Node:
volta install node@14
為合作者提供可復(fù)制的環(huán)境
Volta 允許你用一個(gè)命令為一個(gè)項(xiàng)目選擇節(jié)點(diǎn)引擎和包管理器:
volta pin node@12
Volta 將 Node 引擎的準(zhǔn)確版本保存在 package.json,這樣你就可以把你的選擇提交給 git。從那時(shí)起,每次在項(xiàng)目目錄中運(yùn)行 Node 時(shí),Volta 都會(huì)自動(dòng)切換到您選擇的同一版本 的 Node。類似的。所有的合作者都可以通過(guò)在他們的開(kāi)發(fā)機(jī)器上安裝 Volta 來(lái)做同樣的事情。
Install and forget
Volta 還允許您將最喜歡的二進(jìn)制包作為命令行工具安裝,而不必?fù)?dān)心它們會(huì)干擾您的開(kāi)發(fā)項(xiàng)目。更好的是,這些工具在安裝時(shí)被固定到特定的 Node 引擎上,除非您顯式地告訴它們,否則它們不會(huì)更改。這意味著一旦一個(gè)工具工作了,它就會(huì)繼續(xù)工作。
npm install -g surge surge -h
安裝 Volta
在安裝 Volta 前, 如果有使用其它的 nodejs 管理工具/nodejs,可以提前卸載(非必須)。
Unix 安裝
在大多數(shù) Unix 系統(tǒng)(包括 macOS)上,您可以使用一個(gè)命令安裝 Volta:
curl https://get.volta.sh | bash
使用 Volta
Volta 的工作是管理 JavaScript 命令行工具,如 node、npm、yarn 或作為 JavaScript 包的一部分發(fā)布的可執(zhí)行文件。
與包管理器類似,Volta 會(huì)根據(jù)當(dāng)前目錄跟蹤您正在處理的項(xiàng)目(如果有的話)。Volta 工具鏈中的工具會(huì)自動(dòng)檢測(cè)您所處的項(xiàng)目是否使用特定版本的工具,并為您路由到正確的工具版本。
管理您的工具鏈
您可以使用兩個(gè)命令控制由 Volta 工具鏈管理的工具: Volta install 和 Volta uninstall。
安裝 node 引擎
要將工具安裝到工具鏈中,需要設(shè)置該工具的默認(rèn)版本。Volta 將始終使用這個(gè)默認(rèn)值,除非您在一個(gè)已配置 Volta 使用不同版本的項(xiàng)目目錄中工作。當(dāng)您選擇默認(rèn)版本時(shí),Volta 也會(huì)將該版本下載到本地緩存中。
例如,您可以選擇 node 的確切版本作為默認(rèn)版本:
volta install node@14.15.5
你不需要指定一個(gè)精確的版本,在這種情況下,Volta 會(huì)選擇一個(gè)合適的版本來(lái)匹配你的請(qǐng)求:
volta install node@14
你也可以指定最新版本,或者甚至完全不選擇版本,Volta 將選擇最新的 LTS 版本:
volta install node
一旦您運(yùn)行了這些命令中的一個(gè),在您的 PATH 環(huán)境(或 Windows 中的 PATH)中由 Volta 提供的節(jié)點(diǎn)可執(zhí)行文件將在默認(rèn)情況下自動(dòng)運(yùn)行您選擇的 node 版本。
同樣地,你可以使用 volta install npm 和 volta install Yarn 分別選擇 npm 和 Yarn 包管理器的版本。這些工具將使用您選擇的 Node 的默認(rèn)版本運(yùn)行。
管理您的項(xiàng)目
Volta 允許團(tuán)隊(duì)或協(xié)作者社區(qū)標(biāo)準(zhǔn)化他們?cè)陧?xiàng)目中使用的開(kāi)發(fā)工具。
固定 Node 引擎
volta pin 命令允許您為項(xiàng)目選擇 Node 引擎和包管理器版本:
volta pin node@12.21 volta pin yarn@1.18
Volta 會(huì)把這個(gè)放在你的 package.json,這樣你就可以把你選擇的工具提交到版本控制:
"volta": { "node": "12.20.1", "yarn": "1.19.1" }
這樣,每個(gè)使用 Volta 在項(xiàng)目上工作的人都會(huì)自動(dòng)獲得您選擇的相同版本。
node --version # 12.20.1 yarn --version # 1.19.1
使用項(xiàng)目工具
node 和包管理器可執(zhí)行文件并不是工具鏈中唯一的智能工具:工具鏈中的包二進(jìn)制文件也知道您的當(dāng)前目錄,并尊重您所在項(xiàng)目的配置。
例如,安裝 Typescript 包會(huì)將編譯器 tsc 添加到你的工具鏈中:
npm install --global typescript
根據(jù)你所在的項(xiàng)目,這個(gè)可執(zhí)行文件會(huì)切換到項(xiàng)目選擇的 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
安全方便
因?yàn)?Volta 的工具鏈總是跟蹤你在哪里,它確保你使用的工具總是尊重你正在做的項(xiàng)目的設(shè)置。這意味著您不必?fù)?dān)心在項(xiàng)目之間切換時(shí)更改已安裝軟件的狀態(tài)。
更重要的是,當(dāng) Volta 運(yùn)行一個(gè)工具時(shí),它會(huì)覆蓋它的軌跡,確保你的 npm 或 Yarn 腳本永遠(yuǎn)不會(huì)看到你的工具鏈中有什么。
這兩個(gè)特性的結(jié)合意味著 Volta 解決了全局包的問(wèn)題。換句話說(shuō),Volta 為您提供了全局包安裝的便利,但沒(méi)有危險(xiǎn)。
例如,你可以使用 npm i -g typescript 安全地安裝 TypeScript,并享受直接調(diào)用 tsc 的便利無(wú)需擔(dān)心項(xiàng)目的包腳本可能意外地依賴于您的機(jī)器的全局狀態(tài)。
Pnpm 支持
對(duì) pnpm 的支持目前是實(shí)驗(yàn)性的。要啟用該功能,請(qǐng)確保環(huán)境變量 VoLTA_FEATURE_PNPM 設(shè)置為 1。在 Windows 上可以添加到環(huán)境變量中。在 Linux/Mac 上,您可以在配置文件腳本中設(shè)置該值(例如 .bash_profile、.zshrc 或類似的腳本)。
已知的限制:
全局安裝:目前不支持全局安裝(例如 pnpm install -g),并且會(huì)導(dǎo)致錯(cuò)誤。
遷移:目前還沒(méi)有自動(dòng)遷移功能,因此如果您以前將 pnpm 作為 Volta 全局文件安裝,則需要通過(guò)調(diào)用 Volta install pnpm 手動(dòng)重新安裝它。在啟用支持并重新安裝之前,您可以通過(guò) volta uninstall pnpm 卸載之前安裝的 pnpm 包。一旦切換到本機(jī) pnpm 支持,由于目前缺乏卸載實(shí)現(xiàn),可能無(wú)法通過(guò)調(diào)用相同的命令來(lái)刪除孤立的舊 pnpm 包。
Volta 命令
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 將工具緩存到本地機(jī)器以供離線使用
volta install 設(shè)置工具的默認(rèn)版本
volta uninstall 從工具鏈中卸載工具
volta pin 固定項(xiàng)目的運(yùn)行時(shí)或包管理器
volta list 顯示當(dāng)前工具鏈
volta completions 命令補(bǔ)全
volta which 查看 volta 安裝的工具的目錄
volta setup 為當(dāng)前用戶/shell 啟用 volta
volta run 運(yùn)行帶有自定義Node、npm、pnpm和/或Yarn版本的命令
volta help 輸出幫助信息
結(jié)束語(yǔ)
如果你在工作中遇到有多個(gè)項(xiàng)目使用不同版本的 nodejs,就來(lái)試試Volta吧!
到此這篇關(guān)于node版本管理器Volta的簡(jiǎn)單介紹的文章就介紹到這了,更多相關(guān)node Volta內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- node.js版本管理工具n無(wú)效的原理和解決方法
- 詳解node nvm進(jìn)行node多版本管理
- nodejs多版本管理總結(jié)
- node版本管理工具n包使用教程詳解
- Windows上node.js的多版本管理工具用法實(shí)例分析
- Node版本升級(jí)和降級(jí)之node版本管理工具nvm詳解
- 安裝nvm?node版本管理器的操作方法(vue2.x遷移vue3.x)
- 如何使用nvm實(shí)現(xiàn)nodejs版本管理(版本刪除,版本切換及版本添加)
- nodejs版本管理工具nvm的安裝與使用小結(jié)
- windows使用nvm對(duì)node進(jìn)行版本管理切換的完整步驟
- Node.JS 版本管理工具Fnm安裝及配置
相關(guān)文章
Node.js中多進(jìn)程模塊Cluster的介紹與使用
眾所周知Node.js是單線程的,一個(gè)單獨(dú)的Node.js進(jìn)程無(wú)法充分利用多核。Node.js從v0.6.0開(kāi)始,新增cluster模塊,讓Node.js開(kāi)發(fā)Web服務(wù)時(shí),很方便的做到充分利用多核機(jī)器。這篇文章主要給大家介紹了關(guān)于Node.js中多進(jìn)程模塊Cluster的相關(guān)資料,需要的朋友可以參考下2017-05-05使用Node.js的async和await進(jìn)行異步編程
使用異步編程可以提高Node.js應(yīng)用程序的性能,而async和await是Node.js中實(shí)現(xiàn)異步編程的一種簡(jiǎn)單且易于使用的方式,可以幫助開(kāi)發(fā)者避免回調(diào)地獄和處理異步操作時(shí)的錯(cuò)誤2023-05-05基于Node.js和Socket.IO實(shí)現(xiàn)實(shí)時(shí)通信功能
在現(xiàn)代網(wǎng)絡(luò)應(yīng)用中,實(shí)時(shí)通信變得越來(lái)越重要,Node.js,作為一個(gè)JavaScript運(yùn)行環(huán)境,而Socket.IO則為Node.js提供了一個(gè)強(qiáng)大的實(shí)時(shí)通信庫(kù),本文將通過(guò)一個(gè)簡(jiǎn)單的示例,展示如何使用Node.js和Socket.IO創(chuàng)建一個(gè)能夠?qū)崿F(xiàn)實(shí)時(shí)通信的服務(wù)器,需要的朋友可以參考下2024-11-11Node.JS利用PhantomJs抓取網(wǎng)頁(yè)入門教程
現(xiàn)今,網(wǎng)頁(yè)抓取已經(jīng)是一種人所共知的技術(shù)了,然而依然存在著諸多復(fù)雜性,下面這篇文章主要給大家介紹了Node.JS利用PhantomJs抓取網(wǎng)頁(yè)的方法教程,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-05-05nodejs+websocket實(shí)時(shí)聊天系統(tǒng)改進(jìn)版
這篇文章主要介紹了nodejs+websocket實(shí)時(shí)聊天系統(tǒng)的改進(jìn)版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05Node層模擬實(shí)現(xiàn)multipart表單的文件上傳示例
下面小編就為大家分享一篇Node層模擬實(shí)現(xiàn)multipart表單的文件上傳示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01node.js中的events.emitter.removeAllListeners方法使用說(shuō)明
這篇文章主要介紹了node.js中的events.emitter.removeAllListeners方法使用說(shuō)明,本文介紹了events.emitter.removeAllListeners 的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12node通過(guò)express搭建自己的服務(wù)器
本篇文章主要介紹了node通過(guò)express搭建自己的服務(wù)器 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09