jdx/mise
GitHub: jdx/mise
一个面向开发的多语言环境与任务管理工具,解决工具链与环境配置混乱问题。
Stars: 26816 | Forks: 1062
## 它是什么?
- 就像 [asdf](https://asdf-vm.com)(或 [nvm](https://github.com/nvm-sh/nvm) 或 [pyenv](https://github.com/pyenv/pyenv),但适用于任何语言),它管理 [开发工具](https://mise.jdx.dev/dev-tools/),如 node、python、cmake、terraform,以及 [数百种其他工具](https://mise.jdx.dev/registry.html)。
- 就像 [direnv](https://github.com/direnv/direnv),它为不同项目目录管理 [环境变量](https://mise.jdx.dev/environments/)。
- 就像 [make](https://www.gnu.org/software/make/manual/make.html),它管理用于构建和测试项目的 [任务](https://mise.jdx.dev/tasks/)。
## 演示
以下演示展示了如何安装并使用 `mise` 在同一系统上管理多个版本的 `node`。
注意,调用 `which node` 会给我们一个指向 node 的真实路径,而不是一个 shim。
它还展示了你可以使用 `mise` 来安装许多其他工具,例如 `jq`、`terraform` 或 `go`。
[](https://mise.jdx.dev/demo.html)
参见 [演示文稿](https://mise.jdx.dev/demo.html)。
## 快速开始
### 安装 mise
参见 [Getting started](https://mise.jdx.dev/getting-started.html) 获取更多选项。
```
$ curl https://mise.run | sh
$ ~/.local/bin/mise --version
_ __
____ ___ (_)_______ ___ ____ ____ / /___ _________
/ __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
/ / / / / / (__ ) __/_____/ __/ / / /_____/ /_/ / / /_/ / /__/ __/
/_/ /_/ /_/_/____/\___/ \___/_/ /_/ / .___/_/\__,_/\___/\___/
/_/ by @jdx
2026.4.16 macos-arm64 (2026-04-17)
```
将 mise 集成到你的 shell 中(选择适合你 shell 的选项):
```
# 注意这假设 `mise` 位于 `~/.local/bin/mise`
# 这正是 https://mise.run 默认执行的操作
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
echo '~/.local/bin/mise activate pwsh | Out-String | Invoke-Expression' >> ~/.config/powershell/Microsoft.PowerShell_profile.ps1
```
### 使用特定工具执行命令
```
$ mise exec node@26 -- node -v
mise node@26.x.x ✓ installed
v26.x.x
```
### 安装工具
```
$ mise use --global node@26 go@1
$ node -v
v26.x.x
$ go version
go version go1.x.x macos/arm64
```
参见 [开发工具](https://mise.jdx.dev/dev-tools/) 获取更多示例。
### 管理环境变量
```
# mise.toml
[env]
SOME_VAR = "foo"
```
```
$ mise set SOME_VAR=bar
$ echo $SOME_VAR
bar
```
注意 `mise` 也可以 [加载 `.env` 文件](https://mise.jdx.dev/environments/#env-directives)。
### 运行任务
```
# mise.toml
[tasks.build]
description = "build the project"
run = "echo building..."
```
```
$ mise run build
building...
```
参见 [任务](https://mise.jdx.dev/tasks/) 获取更多信息。
### 示例 mise 项目
这是一个组合示例,让你了解如何使用 mise 管理项目的工具、环境和任务。
```
# mise.toml
[tools]
terraform = "1"
aws-cli = "2"
[env]
TF_WORKSPACE = "development"
AWS_REGION = "us-west-2"
AWS_PROFILE = "dev"
[tasks.plan]
description = "Run terraform plan with configured workspace"
run = """
terraform init
terraform workspace select $TF_WORKSPACE
terraform plan
"""
[tasks.validate]
description = "Validate AWS credentials and terraform config"
run = """
aws sts get-caller-identity
terraform validate
"""
[tasks.deploy]
description = "Deploy infrastructure after validation"
depends = ["validate", "plan"]
run = "terraform apply -auto-approve"
```
运行方式:
```
mise install # install tools specified in mise.toml
mise run deploy
```
在 [mise 食谱](https://mise.jdx.dev/mise-cookbook/) 中查找更多示例。
## 完整文档
参见 [mise.jdx.dev](https://mise.jdx.dev)
## GitHub 问题与讨论
由于收到的 issue 数量过多,使用 GitHub Issues 对项目来说已不可持续。
相反,mise 使用 GitHub Discussions,它提供了一个更具社区导向的平台用于交流,并且维护人员的管理负担更少。
请注意以下讨论分类,它们与问题的使用方式相匹配:
- [公告](https://github.com/jdx/mise/discussions/categories/announcements)
- [想法](https://github.com/jdx/mise/discussions/categories/ideas):功能请求等。
- [故障排除与错误报告](https://github.com/jdx/mise/discussions/categories/troubleshooting-and-bug-reports)
## 特别感谢
我们感谢 Cloudflare 通过 [Project Alexandria](https://www.cloudflare.com/lp/project-alexandria/) 提供的支持。
## 贡献者
[](https://github.com/jdx/mise/graphs/contributors)
标签:asdf, dev tools, direnv, env vars, make, Rust, SEO: dev tools, SEO: 任务运行器, SEO: 环境变量, SOC Prime, task runner, 二进制发布, 任务运行器, 前端开发环境, 可视化界面, 多语言版本管理, 开发工具, 开发环境配置, 开源工具, 环境变量管理, 网络流量审计, 通知系统, 项目任务管理