Zum Inhalt springen

mise - Dev-Umgebungs-Manager Kurzreferenz

mise - Dev-Umgebungs-Manager Kurzreferenz

Ein polyglotter Dev-Umgebungs-Manager, der asdf, nvm, pyenv, direnv und make in einem einzigen Tool ersetzt. Verwalten Sie Tool-Versionen, Umgebungsvariablen und Projekt-Tasks — alles aus einer Konfigurationsdatei.

Installation

PlattformBefehl
macOS/Linux (Empfohlen)curl https://mise.run | sh
macOS (Homebrew)brew install mise
Arch Linuxsudo pacman -S mise
Ubuntu/Debian (apt)sudo apt install mise
Fedora/RHELsudo dnf install mise
Windows (Scoop)scoop install mise
Cargo (Alle Plattformen)cargo install mise
Nixnix-env -iA nixpkgs.mise
Dockerdocker run jdx/mise

Shell-Integration (Erforderlich)

ShellKonfigurationsdateiHinzuzufügender Befehl
Bash~/.bashrceval "$(mise activate bash)"
Zsh~/.zshrceval "$(mise activate zsh)"
Fish~/.config/fish/config.fishmise activate fish | source
PowerShellProfilemise activate pwsh | Out-String | Invoke-Expression

Tool-Versionsverwaltung

Tools installieren und verwenden

BefehlBeschreibung
mise use node@22Node.js 22 installieren und für aktuelles Verzeichnis festlegen
mise use python@3.12Python 3.12 für aktuelles Verzeichnis installieren
mise use --global node@22Node.js 22 als globalen Standard festlegen
mise use node@ltsDie neueste LTS-Version verwenden
mise use node@latestDie absolut neueste Version verwenden
mise installAlle Tools aus mise.toml / .tool-versions installieren
mise install nodeDie konfigurierte Version von Node.js installieren
mise install node@20Eine bestimmte Version installieren
mise uninstall node@18Eine bestimmte Version entfernen
mise upgrade nodeNode.js auf die neueste passende Version aktualisieren
mise upgradeAlle Tools aktualisieren
mise lsAlle installierten Tool-Versionen auflisten
mise ls nodeInstallierte Node.js-Versionen auflisten
mise ls-remote nodeAlle verfügbaren Node.js-Versionen anzeigen
mise which nodePfad zur aktiven node-Binärdatei anzeigen
mise where node@22Installationsverzeichnis für Node.js 22 anzeigen
mise search pythonNach verfügbaren Tools suchen, die “python” entsprechen
mise exec node@20 -- node -vBefehl mit einer bestimmten Tool-Version ausführen

Unterstützte Tools (Teilweise Liste)

Node.js, Python, Ruby, Go, Rust, Java, Erlang, Elixir, PHP, Terraform, kubectl, Helm, Deno, Bun und hunderte mehr über Plugins.

Umgebungsvariablen

BefehlBeschreibung
mise set MY_VAR=valueUmgebungsvariable für aktuelles Verzeichnis setzen
mise set --global API_KEY=xyzGlobale Umgebungsvariable setzen
mise unset MY_VAREine Umgebungsvariable entfernen
mise envAlle aktiven Umgebungsvariablen anzeigen
mise env --jsonUmgebungsvariablen als JSON anzeigen

Task-Verwaltung

BefehlBeschreibung
mise run build”build”-Task ausführen
mise run test”test”-Task ausführen
mise run lint -- --fixTask mit zusätzlichen Argumenten ausführen
mise tasks lsAlle verfügbaren Tasks auflisten
mise tasks info buildDetails über den “build”-Task anzeigen
mise tasks add build "npm run build"Neuen Task erstellen
mise tasks edit buildTask in Ihrem Editor bearbeiten
mise tasks depsTask-Abhängigkeitsbaum anzeigen
mise tasks validateTask-Konfiguration validieren

Konfigurationsdateien

mise.toml (Primär — pro Projekt)

# .mise.toml oder mise.toml im Projekt-Root
[tools]
node = "22"               # Exakte Hauptversion
python = "3.12"            # Exakte Nebenversion
terraform = "latest"       # Immer neueste
ruby = "3.3.0"             # Exakte Patch-Version
go = "prefix:1.22"         # Neueste 1.22.x

[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost/mydb"
# Aus .env-Datei laden
_.file = ".env"

[tasks.build]
description = "Build the project"
run = "npm run build"
depends = ["install"]      # 'install' zuerst ausführen

[tasks.install]
description = "Install dependencies"
run = "npm install"

[tasks.test]
description = "Run test suite"
run = "npm test"
depends = ["build"]

[tasks.dev]
description = "Start dev server"
run = "npm run dev"

.tool-versions (asdf-kompatibel)

# .tool-versions — kompatibel mit asdf
node 22.0.0
python 3.12.1
ruby 3.3.0

Konfigurationshierarchie (Spezifischste gewinnt)

  1. mise.toml im aktuellen Verzeichnis
  2. mise.toml in übergeordneten Verzeichnissen (nach oben gehend)
  3. ~/.config/mise/config.toml (global)

Diagnose und Hilfsprogramme

BefehlBeschreibung
mise doctorKonfigurationsprobleme diagnostizieren
mise versionmise-Version anzeigen
mise self-updatemise selbst aktualisieren
mise cache clearDownload- und Build-Caches leeren
mise reshimShim-Dateien regenerieren
mise deactivatemise in aktueller Shell deaktivieren
mise lockLockfile für reproduzierbare Installationen erstellen
mise config lsAlle aktiven Konfigurationsdateien auflisten

Plugin-Verwaltung

BefehlBeschreibung
mise plugins lsInstallierte Plugins auflisten
mise plugins install terraformPlugin installieren
mise plugins updateAlle Plugins aktualisieren
mise plugins update terraformBestimmtes Plugin aktualisieren
mise backends lsVerfügbare Tool-Backends auflisten

Migration von anderen Tools

Von nvm

# nvm aus Shell-Konfiguration entfernen, dann:
mise use --global node@$(node -v | sed 's/v//')

Von asdf

# mise liest .tool-versions-Dateien nativ
# Einfach mise installieren und aktivieren — vorhandene .tool-versions-Dateien funktionieren

Von direnv

# Umgebungsvariablen in [env]-Abschnitt von mise.toml verschieben
# mise behandelt verzeichnis-bezogene Umgebungsvariablen nativ

Häufige Arbeitsabläufe

# Neues Projekt einrichten
cd ~/projects/my-app
mise use node@22 python@3.12
mise set NODE_ENV=development

# Projekt klonen und bootstrappen
git clone repo && cd repo
mise install              # Installiert alle Tools aus mise.toml

# Projekt-Tasks ausführen
mise run dev              # Dev-Server starten
mise run test             # Tests ausführen
mise run build            # Für Produktion bauen

# Tool-Versionen über Projekte prüfen
mise ls

# Tools aktuell halten
mise upgrade              # Alle Tools auf neueste Version aktualisieren

Vergleich mit anderen Tools

Funktionasdfnvmdirenvmise
MehrsprachigJaNur NodeNeinJa
UmgebungsvariablenNeinNeinJaJa
Task-RunnerNeinNeinNeinJa
Konfigurationsdatei.tool-versions.nvmrc.envrcmise.toml + .tool-versions
GeschwindigkeitLangsam (Shell)MäßigSchnellSchnell (Rust)
ShimsJaJaNeinJa

Ressourcen