Aller au contenu

Installation et configuration

Installer mise, activer l'integration shell et configurer un premier projet avec des runtimes geres.


Installation

brew install mise
curl https://mise.run | sh
# Le binaire est installe dans ~/.local/bin/mise
curl https://mise.run | sh

Vérifier :

mise --version
# 2024.x.x

Activation shell

mise doit s'intégrer a votre shell pour intercepter les changements de répertoire :

# Ajouter dans ~/.zshrc
eval "$(mise activate zsh)"

Recharger :

source ~/.zshrc

Ordre dans .zshrc

L'activation de mise doit etre apres Oh My Zsh et avant Starship :

source $ZSH/oh-my-zsh.sh    # 1. Oh My Zsh
eval "$(mise activate zsh)"  # 2. mise
eval "$(starship init zsh)"  # 3. Starship

Premier usage

Installer un runtime

# Installer Node.js 20
mise use node@20

# Verifier
node --version
# v20.11.0

which node
# ~/.local/share/mise/installs/node/20.11.0/bin/node

mise use fait deux choses :

  1. Installe la version si elle n'est pas presente
  2. Écrit la version dans .tool-versions (ou mise.toml)

Configuration par projet

# Dans le repertoire du projet
cd ~/projets/mon-api

# Definir les versions du projet
mise use node@20.11.0
mise use python@3.12.1
mise use golang@1.22.0

# Le fichier .tool-versions est cree automatiquement
cat .tool-versions
# node 20.11.0
# python 3.12.1
# golang 1.22.0

Configuration globale

Les versions globales s'appliquent quand aucun .tool-versions local n'est present :

# Definir des versions globales
mise use --global node@20
mise use --global python@3.12

# Le fichier global est dans ~/.config/mise/config.toml

Vérifier l'installation

# Lister les runtimes installes
mise ls
# node   20.11.0  ~/.tool-versions
# python 3.12.1   ~/.tool-versions
# golang 1.22.0   ~/.tool-versions

# Verifier que les commandes pointent vers les bonnes versions
mise doctor
# Affiche l'etat de sante de l'installation

Tester le changement automatique :

# Projet A
cd ~/projets/projet-a
node --version  # v20.11.0

# Projet B (avec node 18 dans .tool-versions)
cd ~/projets/projet-b
node --version  # v18.19.0

# Retour au projet A
cd ~/projets/projet-a
node --version  # v20.11.0