Aide-Mémoire mise - Gestionnaire d’Environnement de Développement
Un gestionnaire d’environnement de développement polyglotte qui remplace asdf, nvm, pyenv, direnv et make en un seul outil. Gérez les versions d’outils, les variables d’environnement et les tâches de projet — le tout depuis un seul fichier de configuration.
Installation
| Plateforme | Commande |
|---|
| macOS/Linux (Recommandé) | curl https://mise.run | sh |
| macOS (Homebrew) | brew install mise |
| Arch Linux | sudo pacman -S mise |
| Ubuntu/Debian (apt) | sudo apt install mise |
| Fedora/RHEL | sudo dnf install mise |
| Windows (Scoop) | scoop install mise |
| Cargo (Toutes plateformes) | cargo install mise |
| Nix | nix-env -iA nixpkgs.mise |
| Docker | docker run jdx/mise |
Intégration Shell (Requis)
| Shell | Fichier de Configuration | Commande à Ajouter |
|---|
| Bash | ~/.bashrc | eval "$(mise activate bash)" |
| Zsh | ~/.zshrc | eval "$(mise activate zsh)" |
| Fish | ~/.config/fish/config.fish | mise activate fish | source |
| PowerShell | Profile | mise activate pwsh | Out-String | Invoke-Expression |
Gestion des Versions d’Outils
Installation et Utilisation d’Outils
| Commande | Description |
|---|
mise use node@22 | Installer Node.js 22 et définir pour le répertoire courant |
mise use python@3.12 | Installer Python 3.12 pour le répertoire courant |
mise use --global node@22 | Définir Node.js 22 comme valeur par défaut globale |
mise use node@lts | Utiliser la dernière version LTS |
mise use node@latest | Utiliser la version la plus récente absolue |
mise install | Installer tous les outils depuis mise.toml / .tool-versions |
mise install node | Installer la version configurée de Node.js |
mise install node@20 | Installer une version spécifique |
mise uninstall node@18 | Supprimer une version spécifique |
mise upgrade node | Mettre à niveau Node.js vers la dernière version correspondante |
mise upgrade | Mettre à niveau tous les outils |
mise ls | Lister toutes les versions d’outils installées |
mise ls node | Lister les versions Node.js installées |
mise ls-remote node | Afficher toutes les versions Node.js disponibles |
mise which node | Afficher le chemin vers le binaire node actif |
mise where node@22 | Afficher le répertoire d’installation pour Node.js 22 |
mise search python | Rechercher les outils disponibles correspondant à “python” |
mise exec node@20 -- node -v | Exécuter une commande avec une version d’outil spécifique |
Outils Supportés (Liste Partielle)
Node.js, Python, Ruby, Go, Rust, Java, Erlang, Elixir, PHP, Terraform, kubectl, Helm, Deno, Bun, et des centaines d’autres via plugins.
Variables d’Environnement
| Commande | Description |
|---|
mise set MY_VAR=value | Définir une variable d’environnement pour le répertoire courant |
mise set --global API_KEY=xyz | Définir une variable d’environnement globale |
mise unset MY_VAR | Supprimer une variable d’environnement |
mise env | Afficher toutes les variables d’environnement actives |
mise env --json | Afficher les variables d’environnement en JSON |
Gestion des Tâches
| Commande | Description |
|---|
mise run build | Exécuter la tâche “build” |
mise run test | Exécuter la tâche “test” |
mise run lint -- --fix | Exécuter la tâche avec des arguments supplémentaires |
mise tasks ls | Lister toutes les tâches disponibles |
mise tasks info build | Afficher les détails de la tâche “build” |
mise tasks add build "npm run build" | Créer une nouvelle tâche |
mise tasks edit build | Éditer une tâche dans votre éditeur |
mise tasks deps | Afficher l’arbre de dépendances des tâches |
mise tasks validate | Valider la configuration des tâches |
Fichiers de Configuration
mise.toml (Principal — par projet)
# .mise.toml ou mise.toml à la racine du projet
[tools]
node = "22" # Version majeure exacte
python = "3.12" # Version mineure exacte
terraform = "latest" # Toujours la dernière
ruby = "3.3.0" # Version de patch exacte
go = "prefix:1.22" # Dernière 1.22.x
[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost/mydb"
# Charger depuis le fichier .env
_.file = ".env"
[tasks.build]
description = "Build the project"
run = "npm run build"
depends = ["install"] # Exécuter 'install' en premier
[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 — compatible avec asdf
node 22.0.0
python 3.12.1
ruby 3.3.0
Hiérarchie de Configuration (Le plus spécifique gagne)
mise.toml dans le répertoire courant
mise.toml dans les répertoires parents (en remontant)
~/.config/mise/config.toml (global)
Diagnostics et Utilitaires
| Commande | Description |
|---|
mise doctor | Diagnostiquer les problèmes de configuration |
mise version | Afficher la version de mise |
mise self-update | Mettre à jour mise lui-même |
mise cache clear | Effacer les caches de téléchargement et de construction |
mise reshim | Régénérer les fichiers shim |
mise deactivate | Désactiver mise dans le shell courant |
mise lock | Créer un fichier de verrouillage pour des installations reproductibles |
mise config ls | Lister tous les fichiers de configuration actifs |
Gestion des Plugins
| Commande | Description |
|---|
mise plugins ls | Lister les plugins installés |
mise plugins install terraform | Installer un plugin |
mise plugins update | Mettre à jour tous les plugins |
mise plugins update terraform | Mettre à jour un plugin spécifique |
mise backends ls | Lister les backends d’outils disponibles |
Migration depuis Autres Outils
Depuis nvm
# Supprimer nvm de la configuration shell, puis :
mise use --global node@$(node -v | sed 's/v//')
Depuis asdf
# mise lit les fichiers .tool-versions nativement
# Installez simplement mise et activez-le — les fichiers .tool-versions existants fonctionnent
Depuis direnv
# Déplacer les variables d'environnement vers la section [env] de mise.toml
# mise gère les variables d'environnement à portée de répertoire nativement
Flux de Travail Courants
# Configurer un nouveau projet
cd ~/projects/my-app
mise use node@22 python@3.12
mise set NODE_ENV=development
# Cloner et initialiser un projet
git clone repo && cd repo
mise install # Installe tous les outils depuis mise.toml
# Exécuter les tâches du projet
mise run dev # Démarrer le serveur de développement
mise run test # Exécuter les tests
mise run build # Construire pour la production
# Vérifier les versions d'outils à travers les projets
mise ls
# Maintenir les outils à jour
mise upgrade # Mettre à niveau tous les outils vers la dernière version
Comparaison avec Autres Outils
| Fonctionnalité | asdf | nvm | direnv | mise |
|---|
| Multi-langage | Oui | Node uniquement | Non | Oui |
| Variables d’environnement | Non | Non | Oui | Oui |
| Exécuteur de tâches | Non | Non | Non | Oui |
| Fichier de configuration | .tool-versions | .nvmrc | .envrc | mise.toml + .tool-versions |
| Vitesse | Lent (shell) | Modéré | Rapide | Rapide (Rust) |
| Shims | Oui | Oui | Non | Oui |
Ressources