运行环境版本管理工具-asdf

566 阅读1分钟

介绍

在日常开发工作中我们经常会遇到这样的需求,我希望系统中各种编程语言的不同版本共存,比如我一个项目基于python2,另一个项目又基于python3,这时候你又两个选择,一是官网下载2和3的安装包,二是用pyenv管理不同版本的python。如果又要同时安装php7php8呢?我之前遇到这种情况时,去网上搜了php的版本管理工具,没有很好的选择,后来选择走homebrew,同时安装了php@7.4php

我用pyenv管理不同的python版本,用jabba管理不同的java版本,用nvm管理不同的nodejs版本...直到用上了asdf,一个可以同时满足我所有需求的工具。

asdf使用单个命令行工具管理你的每个项目运行环境。阅读官方的Getting Started可以帮助你快速上手。

一些小问题及解决方案

corepack enable之后yarnpnpm不生效

asdf reshim nodejs

全局安装@nestjs/cli之后nest不生效

asdf reshim nodejs

全局安装jupyterlab之后jupyter lab不生效

asdf reshim python

homebrew更新asdf版本后node运行报错

vim `which node`

修改asdf路径为/opt/homebrew/opt/asdf/libexec/bin/asdf

#!/usr/bin/env bash
# asdf-plugin: nodejs 18.3.0
# asdf-plugin: nodejs 16.15.1
# asdf-plugin: nodejs lts
exec /opt/homebrew/opt/asdf/libexec/bin/asdf exec "node" "$@" # asdf_allow: ' asdf '

npm或其他报错同理。