|
@@ -0,0 +1,377 @@
|
|
|
+### windows10:
|
|
|
+[https://docs.volta.sh/reference/](https://docs.volta.sh/reference/)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+原文:[https://juejin.cn/post/7085383981100695565](https://juejin.cn/post/7085383981100695565)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+### 还在用nvm做node管理工具?快来试试Volta吧!
|
|
|
+
|
|
|
+### SUBCOMMANDS:速查命令
|
|
|
+
|
|
|
+```bash
|
|
|
+volta fetch 将工具缓存到本地,方便使用,下次不用重新下载
|
|
|
+volta install 下载一个工具例如 volta install node@14(自动下载稳定版本) 切换node版本也可以使用此命令
|
|
|
+volta uninstall 卸载一个工具,指定详细名称如node/npm/cnpm/yarn
|
|
|
+volta pin 将使用的工具版本固定到json中
|
|
|
+volta list 查看当前使用工具的版本,后面加上工具名称如node/npm/cnpm/yarn都可以
|
|
|
+volta completions 不知道有啥用
|
|
|
+volta which 查看volta安装目录
|
|
|
+volta setup 切换当前使用的用户,没啥用
|
|
|
+volta help 没啥用
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+> 为什么会用Volta呢?因为这段时间电脑上的yarn出了问题,**yarn install**之后就报错`There appears to be trouble with your network connection. Retrying...`,期间找了很多方法都没有解决,但是今天用Volta安装了yarn之后居然奇迹般的可以下载了,速度还特别快。虽然可以了,但依然不知道什么原因导致的。不过又可以用yarn了,开心😄~~ 
|
|
|
+
|
|
|
+# 🥤什么是Volta
|
|
|
+
|
|
|
+标题说 Node.js 版本控制,但你也可以做 npm/yarn 版本控制。[在官方网站上](https://link.juejin.cn/?target=https%3A%2F%2Fvolta.sh%2F "https://volta.sh/"),它被介绍为“无忧无虑的 JavaScript 工具管理器”。当我把项目的 Node.js 的版本控制统一到 Volta 的时候,DX 上去了很多,我感受到了 Volta 的好处。
|
|
|
+
|
|
|
+> 目前没有详细解释的中文资源,所以我阅读了官方文档并酌情将其翻译成中文。 希望有大佬可以无痛阅读并介绍Volta。
|
|
|
+
|
|
|
+# 🥤Volta概述
|
|
|
+
|
|
|
+我们来看看官网介绍的三个功能。 [Get Started →](https://link.juejin.cn/?target=https%3A%2F%2Fdocs.volta.sh%2Fguide%2Fgetting-started%2F "https://docs.volta.sh/guide/getting-started/")
|
|
|
+
|
|
|
+##### ⚡ Fast| 快
|
|
|
+
|
|
|
+Install and run any JS tool quickly and seamlessly! Volta is built in Rust and ships as a snappy static binary.
|
|
|
+
|
|
|
+> 快速无缝地安装和运行任何 JS 工具!Volta 内置于 Rust 并作为一个活泼的静态二进制文件提供。 Volta 是由 Rust 制作的,因此它比其他版本控制工具运行得更快。 *** 快点很好。***
|
|
|
+
|
|
|
+##### ⚡ Reliable| 稳固|可靠
|
|
|
+
|
|
|
+Ensure everyone in your project has the same tools—without interfering with their workflow.
|
|
|
+
|
|
|
+> 确保项目中的每个人都拥有相同的工具,而不会干扰他们的工作流程 。 这是我觉得最受益的地方。 `volta pin`您可以使用该命令轻松对齐项目成员的 Node.js 和 npm 版本。
|
|
|
+> 我将在文章后面详细解释如何使用它,所以我先放着它。
|
|
|
+
|
|
|
+##### ⚡ Universal| 万能
|
|
|
+
|
|
|
+No matter the package manager, Node runtime, or OS, one command is all you need: `volta install`.
|
|
|
+
|
|
|
+> 无论是包管理器、Node 运行时还是操作系统,您只需要一个命令:`volta install`.
|
|
|
+> Windows/Mac/Linux。适用于任何操作系统。
|
|
|
+> 除非每个人都在使用 Volta,否则它无法工作,因此它可以在任何操作系统上运行很重要。
|
|
|
+
|
|
|
+# 🔔特点
|
|
|
+
|
|
|
+让我们快速浏览一下这些功能。
|
|
|
+
|
|
|
+- 速度⚡️
|
|
|
+- 逐个项目的无缝版本切换
|
|
|
+- 跨平台支持,包括 Windows 和所有 Unix shell
|
|
|
+- 支持多个包管理器
|
|
|
+- 工具安装稳定(每次节点升级后无需重新安装)
|
|
|
+- 用于特定于站点的自定义的可扩展性挂钩
|
|
|
+
|
|
|
+# ❣️为什么要使用 Volta?| 为什么选择Volta?
|
|
|
+
|
|
|
+> 使用 Volta,一旦您选择了 Node 引擎,您就不必担心它。切换项目不需要您手动切换版本。您可以在工具链中安装 npm 软件包二进制文件,而无需定期重新安装它们或找出它们停止工作的原因。
|
|
|
+
|
|
|
+### 快速设置和切换 Node 引擎
|
|
|
+
|
|
|
+> 您可以获取和使用特定版本的节点。
|
|
|
+
|
|
|
+```shell
|
|
|
+$ volta install node@14
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+> 您会立即注意到该工具的响应能力。您的开发时间很宝贵!JavaScript 开发人员应该得到一个快速的工具。🙂
|
|
|
+
|
|
|
+当然我觉得安装很快。
|
|
|
+
|
|
|
+### 协作者的可复制环境
|
|
|
+
|
|
|
+> Volta 允许您使用单个命令选择项目的节点引擎和包管理器。
|
|
|
+
|
|
|
+```shell
|
|
|
+~~路径/到/你的/项目~~
|
|
|
+$ volta pin node@12
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+> Volta 将 Node 引擎的确切版本存储在 package.json 中,因此您可以将您的选择提交给 git。从那时起,每次您在项目目录中运行 Node 时,Volta 都会自动切换到与您选择相同版本的 Node 。同样,您的合作者也可以通过在他们各自的开发机器上安装 Volta 来做同样的事情。
|
|
|
+
|
|
|
+这就是Volta的全部意义所在。这是每个人都在使用Volta的条件,但是创建环境的人可以`volta pin`通过命令修复版本,其他成员可以不假思索地执行它`npm install`。 能省去检查版本的麻烦。
|
|
|
+
|
|
|
+### 😏重新安装?
|
|
|
+
|
|
|
+> Volta 允许您将喜欢的软件包二进制文件安装为命令行工具,而不必担心会破坏您的开发项目。更好的是,这些工具在安装期间固定到特定的 Node 引擎,除非您明确指示它们,否则不会更改。
|
|
|
+
|
|
|
+```shell
|
|
|
+$ npm install -g surge
|
|
|
+$ surge -h
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+即使使用此全局安装,也会为每个项目记住版本,因此您不必担心版本。
|
|
|
+
|
|
|
+# 🛠️安装 Volta | 入门
|
|
|
+
|
|
|
+现在让我们安装 Volta。
|
|
|
+
|
|
|
+安装前最好把当前使用的Node版本控制工具去掉,但也并非必须的。
|
|
|
+
|
|
|
+工具的删除部分(nodebrew, NVM, nodist, ...)的模式太多了,所以我就省略删除方法了。请根据自己的环境检查!
|
|
|
+
|
|
|
+> 如果按照了nodebrew,可以通过参考[这篇文章将其删除。](https://link.juejin.cn/?target=)
|
|
|
+
|
|
|
+## 安装Volta
|
|
|
+
|
|
|
+[按照官方入门](https://link.juejin.cn/?target=https%3A%2F%2Fdocs.volta.sh%2Fguide%2Fgetting-started "https://docs.volta.sh/guide/getting-started")安装。
|
|
|
+如果操作系统是 Mac / Linux(包括 WSL),您可以使用以下命令轻松安装它。
|
|
|
+
|
|
|
+```shell
|
|
|
+$ curl https://get.volta.sh | bash
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+命令是`| bash`,但即使是那些使用 zsh /fish 的人也可以毫无问题地安装它。让我们照原样做吧!
|
|
|
+我很感激通行证会自动通过。
|
|
|
+
|
|
|
+对于 Windows,可以使用 Windows 安装程序,一路next即可
|
|
|
+
|
|
|
+⚠️对于 Windows,使用 Volta 似乎需要一些设置,因此请按照[官网的说明进行设置。](https://link.juejin.cn/?target=https%3A%2F%2Fdocs.volta.sh%2Fguide%2Fgetting-started "https://docs.volta.sh/guide/getting-started"),~~但是我没有设置依旧可以使用~~,可以理解为开箱即用。
|
|
|
+
|
|
|
+## 确认已安装
|
|
|
+
|
|
|
+`.zshrc`查看shell配置文件如带有`cat`命令的文件等,如果写入如下路径,就OK了。 ~/.zshrc
|
|
|
+
|
|
|
+```shell
|
|
|
+export VOLTA_HOME="$HOME/.volta"
|
|
|
+export PATH="$VOLTA_HOME/bin:$PATH"
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+重新启动终端一次`volta`,检查是否可以使用该命令。
|
|
|
+
|
|
|
+```shell
|
|
|
+$ volta --version
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+- 👊🏽显示Volta版本时安装完成!
|
|
|
+
|
|
|
+# ✔了解 Volta
|
|
|
+
|
|
|
+> Volta 的工作是`node`管理JavaScript 命令行工具,例如作为 JavaScript 包的一部分提供的可执行文件`npm`。 与包管理器一样,Volta 会根据您当前的目录跟踪您正在处理的项目。Volta 工具链中的工具会自动检测您在使用特定版本工具的项目中,并将您引导到最适合您的工具版本。`yarn`
|
|
|
+
|
|
|
+## 管理你的工具链
|
|
|
+
|
|
|
+> Volta 工具链管理的工具由`volta install`两个`volta uninstall`命令控制
|
|
|
+
|
|
|
+### Node安装
|
|
|
+
|
|
|
+> 在工具链中安装工具时,安装的版本是该工具的_默认版本_。除非您在一个项目目录中工作,其中您有一个固定版本的 Node 以使用不同的版本,否则它默认为 Volta 使用的版本。 例如,您可以通过安装特定版本来选择 Node 的默认版本。
|
|
|
+
|
|
|
+```shell
|
|
|
+$ volta install node@14.15.5
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+> 如果您没有指定确切的版本,Volta 会选择与您的请求相匹配的适当版本。
|
|
|
+
|
|
|
+```shell
|
|
|
+$ volta install node@14
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+> `latest`您也可以安装最新版本。此外,如果您完全省略版本,Volta 将选择并安装最新的 LTS 版本。
|
|
|
+
|
|
|
+```shell
|
|
|
+$ volta install node@latest
|
|
|
+# Node@LTS
|
|
|
+$ volta install node
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+> 当您运行任何这些命令时,由 Volta 在 PATH 环境(或 Windows 上的 Path)中提供的节点可执行文件默认自动运行所选版本的节点。 同样,您可以使用`volta install npm`和`volta install yarn`分别选择 npm 和 Yarn 包管理器的版本。这些工具使用所选节点的默认版本运行。
|
|
|
+
|
|
|
+### 节点引擎固定
|
|
|
+
|
|
|
+> `volta pin`您可以使用命令来选择项目的 Node 引擎和包管理器的版本。
|
|
|
+
|
|
|
+```shell
|
|
|
+$ volta pin node@14.17
|
|
|
+$ volta pin npm@6.14
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+将Volta保存到`package.json`:
|
|
|
+
|
|
|
+```json
|
|
|
+"volta": {
|
|
|
+ "node": "14.17.3",
|
|
|
+ "npm": "6.14.13"
|
|
|
+}
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+> 这样,使用 Volta 进行项目开发的每个人都将自动获得与json设置的相同版本。
|
|
|
+
|
|
|
+### 使用项目工具
|
|
|
+
|
|
|
+> node和包管理器可执行文件不是工具链中唯一的智能工具。工具链中的包二进制文件也可以识别当前目录并尊重当前项目结构。
|
|
|
+
|
|
|
+> 例如,安装 Typescript 包会将编译器可执行文件 ( `tsc`) 添加到工具链中。 终端
|
|
|
+
|
|
|
+```shell
|
|
|
+$ npm install --global typescript
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+> 根据您参与的项目,此可执行文件将切换到您项目中选择的 TypeScript 版本。
|
|
|
+
|
|
|
+```shell
|
|
|
+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
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+如您所见,不仅 Node 和 npm / Yarn 等包管理器,而且通过它们安装的包二进制文件都受到 Volta 的监控。因此,它会自动切换每个项目的版本。
|
|
|
+
|
|
|
+### 安全便利
|
|
|
+
|
|
|
+> Volta 的工具链会跟踪您的位置。因此,您使用的工具将始终优先考虑您正在处理的项目的设置。这意味着您在切换项目时不必担心更改已安装软件的状态。 此外,每次运行工具时,Volta 都会覆盖跟踪,使 npm 或 Yarn 脚本永远不会知道工具链的内容。 结合这两个特性,Volta 解决了全局封装的问题。换句话说,Volta 提供了全局包安装的便利,但没有危险。 例如,`npm i -g typescript`您可以安全地安装 TypeScript,`tsc`并享受直接从控制台调用它的便利。
|
|
|
+
|
|
|
+# 💡Volta 命令
|
|
|
+
|
|
|
+`volta`命令行二进制参考如下。[(点此查看](https://link.juejin.cn/?target=https%3A%2F%2Fdocs.volta.sh%2Freference%2F "https://docs.volta.sh/reference/")官方命令参考)
|
|
|
+
|
|
|
+```shell
|
|
|
+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
|
|
|
+ help Prints this message or the help of the given subcommand(s)
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+## Volta常用命令介绍
|
|
|
+
|
|
|
+最后,我想介绍一些常用的命令。
|
|
|
+
|
|
|
+### `volta install`
|
|
|
+
|
|
|
+`volta install`设置工具的默认版本。如果未缓存本地指定的版本,请从该工具中获取它。
|
|
|
+如何使用`volta install [FLAGS] <tool[@version]>`。 上面说明了安装时指定版本的方法,但总结如下。
|
|
|
+
|
|
|
+```shell
|
|
|
+# 安装指定版本的node
|
|
|
+$ volta install node@14.17.3
|
|
|
+
|
|
|
+# 安装特定版本中的稳定的node版本
|
|
|
+$ volta install node@14
|
|
|
+
|
|
|
+# 安装LTS版本的node
|
|
|
+$ volta install node
|
|
|
+
|
|
|
+# 安装最新版本的node
|
|
|
+$ volta install node@latest
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+### `volta pin`
|
|
|
+
|
|
|
+`volta pin package.json`该命令更新项目文件以使用所选版本的工具。
|
|
|
+此命令只能用于节点和包管理器(npm / Yarn)。
|
|
|
+使用方法是`volta pin [FLAGS] <tool[@version]>`。
|
|
|
+
|
|
|
+```shell
|
|
|
+# node版本固定
|
|
|
+$ volta pin node@14.17
|
|
|
+
|
|
|
+# npm版本固定
|
|
|
+$ volta pin npm@6.14
|
|
|
+# or volta pin yarn@1.19
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+在项目目录中执行上述`volta pin`命令时,`package.json`将写入以下设置。
|
|
|
+
|
|
|
+```diff-json
|
|
|
+{
|
|
|
+ ...,
|
|
|
++ "volta": {
|
|
|
++ "node": "14.17.3",
|
|
|
++ "npm": "6.14.13" //or "yarn": "1.19.2"
|
|
|
++ }
|
|
|
+}
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+通过与您的团队共享此`package.json`内容,例如在 GitHub 上,每个人都可以使用相同版本的 Node 或 npm。
|
|
|
+
|
|
|
+例如,假设您在`package.json`一个项目中运行了上述设置。如果 npm 的版本缓存在 本地机器上,将显示。 如果它没有缓存在本地机器上,它将从安装开始,并在安装完成时显示。`npm -v`
|
|
|
+`6.14.13``6.14.13`
|
|
|
+`6.14.13``6.14.13`
|
|
|
+
|
|
|
+这样,如果你本地有那个版本,它会自动切换到那个版本,否则它会从版本安装开始。
|
|
|
+
|
|
|
+这很方便,而且`npm install`即使你运行它而不用担心版本,版本也会自动对齐,所以`package-lock.json`不会有任何差异。(npm 6系和7系`package-lock.json`的内容很不一样。)
|
|
|
+
|
|
|
+### `volta list`
|
|
|
+
|
|
|
+`volta list`该命令检查并显示包含已安装 Node 运行时、包管理器和二进制文件的包。
|
|
|
+如何使用`volta list [FLAGS] [OPTIONS] [tool]`。
|
|
|
+
|
|
|
+`volta list`该命令的用法总结如下。
|
|
|
+
|
|
|
+```shell
|
|
|
+# 使用方法
|
|
|
+volta list [FLAGS] [OPTIONS] [tool]
|
|
|
+# Flags
|
|
|
+-c, --current # 显示当前活动工具
|
|
|
+ # 此标志为缺省设置
|
|
|
+-d, --default # 显示默认工具
|
|
|
+ --verbose # 启用高级诊断
|
|
|
+ --quiet # 防止不必要的显示
|
|
|
+-h, --help # 显示帮助信息
|
|
|
+
|
|
|
+# OPTIONS
|
|
|
+--format <format> # 指定输出格式
|
|
|
+ # 有效值为`human`or`plain`
|
|
|
+ # 默认值为`human`,否则为`plain`
|
|
|
+
|
|
|
+# ARGS
|
|
|
+<tool> # 指定要列出的工具(node,npm,yarn或其他二进制文件)
|
|
|
+ # 指定all以显示所有内容
|
|
|
+复制代码
|
|
|
+```
|
|
|
+
|
|
|
+`volta list`您可以查看该项目中使用的工具的版本。
|
|
|
+`volta list all`现在您可以看到 Volta 管理的工具列表。
|
|
|
+
|
|
|
+# 💬概括
|
|
|
+
|
|
|
+写了这么长的一句话,希望大家能明白Volta的魅力。
|
|
|
+我认为这对于主要开发 JavaScript 的人来说是最好的解决方案。 我们相信您使用 Volta 的人越多,您就越能享受到它的好处,所以请考虑将它介绍给您的开发团队。
|
|
|
+
|
|
|
+🙏感谢您阅读到最后。再见。
|