Mise: Entwicklungstools, Umgebungsvariablen und Task-Runner
(github.com/jdx)Was ist mise?
- mise ist ein Tool zur Verwaltung verschiedener Entwicklungstools wie node, python, cmake und terraform, ähnlich wie asdf, nvm und pyenv
- Ähnlich wie direnv verwaltet es Umgebungsvariablen pro Projektverzeichnis
- Ähnlich wie make verwaltet es Tasks, die für Build und Tests eines Projekts verwendet werden
30-Sekunden-Demo
- Es wird gezeigt, wie man mit mise verschiedene Versionen von node installiert
- Beim Ausführen des Befehls
which nodewird der tatsächliche Pfad zurückgegeben; es handelt sich also nicht um ein Shim
Schnellstart
- Installation von mise:
$ curl https://mise.run | sh- Mit dem Befehl
$ ~/.local/bin/mise --versionkann die installierte Version überprüft werden
- Installation einer bestimmten Version:
$ curl https://mise.run | MISE_VERSION=v2024.5.16 sh- Mit dem Befehl
$ ~/.local/bin/mise --versionkann die installierte Version überprüft werden
- mise in die Shell einbinden:
- bash:
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc - zsh:
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc - fish:
echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
- bash:
- Runtime installieren und globalen Standardwert festlegen:
$ mise use --global node@20- Mit dem Befehl
$ node -vkann die Version überprüft werden
Vollständige Dokumentation
- Die vollständige Dokumentation ist unter mise.jdx.dev verfügbar
1 Kommentare
Hacker-News-Kommentare
Als ich anfing,
misezu verwenden, war ich zufrieden, weil es die Schwächen vonasdfausglich und zugleich eine schnelle, weniger invasive Shell-Konfiguration botIch bin für die Verwaltung von JS, Ruby, Python und Java SDKs auf
miseumgestiegen und war zufriedenWir verwenden
mise, um die Toolchain des Teams zu vereinheitlichen, und nutzen weder Docker noch Nix dafürmiseist hervorragendWenn man versucht, alles zu machen, besteht eine große Gefahr, am Ende nichts richtig zu machen
Ich bin kein Entwickler und verstehe die Anwendungsfälle solcher Tools daher nicht
asdf, um alle Programmversionen in einem Monorepo zu verwalten; die UX ist nicht besonders gut, aber es ist zuverlässigmakeführe ich pro Verzeichnis wiederholbare kleine Befehle aus oder parallelisiere bzw. sequenziere Befehleasdfinstalliert wird; alles ist automatisiert und die Versionen sind festgelegtIch verwende
mise, um Go-Versionen zu verwalten; es ist etwas verwirrend und nicht besonders gut dokumentiert, aber in Ordnungasdfoder ähnliche Tools noch nie verwendet habe, gibt es möglicherweise eine gewisse LernkurveIch nutze
miseals Ersatz fürasdfund bin zufrieden damitSeit über einem Jahr benutze ich es, und es ist ein einfaches Tool, das mein Leben leichter gemacht hat
Ich überlege, wie sich
misein GitHub-Actions-Workflows integrieren lässtmise-Repository ansieht, scheint es so, als hätten sie einfach ein paarmise-Schritte hinzugefügtNachdem ich das README des Projekts gelesen habe, bleibt bei mir die Frage: „Warum?“