Volta
Volta 是一个JavaScript包管理器,基于rust构建的没有外部依赖项方便安装,支持 跨平台,支持 macOS、Windows、Linux 、按项目自动版本切换、多个包管理器等优势。
安装
如果之前安装过node 或者 nvm n 请先卸载掉再安装 Volta
macOS / Unix 安装
1 | curl https://get.volta.sh | bash |
如果没有自动添加到环境变量,需要自己手动配置
如果您的shell是bash,进入终端,编辑环境变量文件~/.bash_profile, 输入如下内容
如果您的shell是zsh,进入终端,编辑环境变量文件~/.zprofile,输入如下内容
1 | export VOLTA_HOME="$HOME/.volta" |
Windows安装
下载地址 目前最新版是 volta-1.1.1-windows-x86_64.msi
安装过程中需要把360卫士之类的安全管家关闭掉,否则有可能无法自动添加到环境变量。
安装完可以在命令行输入 volta 检查是否能正常运行。
使用
安装 node 和yarn
1 | volta install node@11.0.0 // 安装 node 11.0.0版本 |
固定项目节点引擎(在项目根目录执行)
1 | volta pin node@11.0.0 |
将Volta保存到package.json
1 | "volta": { |
Volta 将 Node 引擎的确切版本保存在您的中package.json,以便您可以将您的选择提交到 git。从那时起,每次您在项目目录中运行 Node 时,Volta 都会自动切换到您选择的 Node 版本。同样,您的所有协作者都可以通过在其开发计算机上安装 Volta 来执行相同的操作。
使用项目工具
node和包管理工具可执行文件不是工具链中唯一的智能工具。工具链中的包二进制文件也可以识别当前目录并尊重当前项目结构。
例如,安装 Typescript 包会将编译器可执行文件 ( tsc) 添加到工具链中。
1 | npm install --global typescript |
根据您所在的项目,此可执行文件将切换到项目选择的 TypeScript 版本:
1 | cd /path/to/project-using-typescript-3.9.4 |
不仅 Node 和 npm / Yarn 等包管理器,而且通过它们安装的包二进制文件都受到 Volta 的监控。因此,它会自动切换每个项目的版本。注:目前volta支持pnpm但是不支持全局安装 例如pnpm install -g
Volta 命令
这是命令行二进制文件的命令参考volta,其语法如下:
1 | The JavaScript Launcher ⚡ |
volta fetch允许您将工具提取到本地缓存中,而无需将其设置为默认值或使其可用,以供将来离线使用。- volta install 安装工具的默认版本。如果该工具尚未在本地缓存,它也会下载该工具。
- volta uninstall 允许您删除任何已安装的全局包volta install。
- volta pin 更新项目package.json文件以使用选定版本的工具。
- volta list 查看已安装的 Node 运行时、包管理器和带有二进制文件的包。
volta completions为您的 shell 生成命令完成信息。volta which定位并打开 Volta 启动实际的二进制文件。volta setup通过修改当前用户的 来volta setup启用 Volta (以依赖于平台的方式)以包含 Volta shim 目录。PATHvolta run使用在命令行中指定的工具版本来运行您提供的命令。volta help打印此消息或给定子命令的帮助。
常用的命令用蓝色标注出来了,对比nvm的好处是无感自动切换版本(在项目目录执行的时候已经切换好版本了)。速度更快。
workspaces
如果在单个存储库中有多个项目,都共享 Volta 设置。
“volta”在 中的部分中package.json,您可以使用 key 指定一个条目“extends”。该条目的值应该是另一个也有一个部分的 JSON 文件的路径”volta”。相对路径将相对于设置它们的文件进行解析。
1 | { |
只需要仓库根目录执行volta pin 固定版本 子项目通过extends引入根项目的package.json就可以实现共享 Volta 设置。
pnpm支持
pnpm目前处于实验阶段。要启用它,请确保将环境变量VOLTA_FEATURE_PNPM设置为1。在 Windows 上,可以将其添加到系统设置中的用户或系统环境变量中。在 Linux/Mac 上,您可以在配置文件脚本中设置值(例如.bash_profile、.zshrc或类似的)。
由于此支持是实验性的,因此可能存在一些悬而未决的问题。下面列出了一些已知的限制。
全局安装
目前,不支持全局安装(例如pnpm install -g),并且会导致错误。
迁移
目前没有自动迁移功能,因此如果您之前已pnpm作为 Volta 全局安装,则需要通过调用 手动重新安装它volta install pnpm。在启用支持并重新安装之前,您可以pnpm通过卸载以前安装的软件包volta uninstall pnpm。一旦切换到本机 pnpm 支持,您可能无法pnpm通过调用相同的命令来删除隔离的旧包,因为目前还缺乏卸载实现。
Volta Could not download node
如果碰见 volta install node@11.0.0报错 Volta Could not download node 可以手动下载安装包再执行 volta install node@11.0.0 就可以安装成功了。
node下载地址
然后找到对应版本Windows 下载 win-xnn.zip后缀 我这边下载的是 node-v11.0.0-win-x64.zipC:\Users\电脑账号名\AppData\Local\Volta\tools\inventory\node
放到这个目录下再执行
1 | volta install node@11.0.0 |
注:如果你有修改过VOLTA_HOME 环境变量请把node 放到配置环境变量的地址。
Volta error: Could not create shared environment for package
如果npm or yarn 安装全局包出现这个报错,请使用管理员权限的命令行工具。