Salta ai contenuti

mise - Scheda di Riferimento Gestore Ambiente Dev

mise - Scheda di Riferimento Gestore Ambiente Dev

Un gestore di ambiente dev poliglotta che sostituisce asdf, nvm, pyenv, direnv e make in un singolo strumento. Gestisce versioni degli strumenti, variabili d’ambiente e task di progetto — tutto da un unico file di configurazione.

Installazione

PiattaformaComando
macOS/Linux (Consigliato)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 (Tutte le piattaforme)cargo install mise
Nixnix-env -iA nixpkgs.mise
Dockerdocker run jdx/mise

Integrazione Shell (Richiesta)

ShellFile di ConfigurazioneComando da Aggiungere
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

Gestione Versione Strumenti

Installazione e Uso Strumenti

ComandoDescrizione
mise use node@22Installa Node.js 22 e imposta per directory corrente
mise use python@3.12Installa Python 3.12 per directory corrente
mise use --global node@22Imposta Node.js 22 come predefinito globale
mise use node@ltsUsa l’ultima versione LTS
mise use node@latestUsa l’ultima versione assoluta
mise installInstalla tutti gli strumenti da mise.toml / .tool-versions
mise install nodeInstalla la versione configurata di Node.js
mise install node@20Installa una versione specifica
mise uninstall node@18Rimuovi una versione specifica
mise upgrade nodeAggiorna Node.js all’ultima versione corrispondente
mise upgradeAggiorna tutti gli strumenti
mise lsElenca tutte le versioni degli strumenti installati
mise ls nodeElenca versioni Node.js installate
mise ls-remote nodeMostra tutte le versioni Node.js disponibili
mise which nodeMostra percorso del binario node attivo
mise where node@22Mostra directory di installazione per Node.js 22
mise search pythonCerca strumenti disponibili corrispondenti a “python”
mise exec node@20 -- node -vEsegui comando con versione strumento specifica

Strumenti Supportati (Lista Parziale)

Node.js, Python, Ruby, Go, Rust, Java, Erlang, Elixir, PHP, Terraform, kubectl, Helm, Deno, Bun, e centinaia di altri tramite plugin.

Variabili d’Ambiente

ComandoDescrizione
mise set MY_VAR=valueImposta variabile env per directory corrente
mise set --global API_KEY=xyzImposta variabile env globale
mise unset MY_VARRimuovi una variabile env
mise envMostra tutte le variabili d’ambiente attive
mise env --jsonMostra variabili env come JSON

Gestione Task

ComandoDescrizione
mise run buildEsegui il task “build”
mise run testEsegui il task “test”
mise run lint -- --fixEsegui task con argomenti extra
mise tasks lsElenca tutti i task disponibili
mise tasks info buildMostra dettagli sul task “build”
mise tasks add build "npm run build"Crea un nuovo task
mise tasks edit buildModifica un task nel tuo editor
mise tasks depsMostra albero dipendenze task
mise tasks validateValida configurazione task

File di Configurazione

mise.toml (Primario — per progetto)

# .mise.toml o mise.toml nella root del progetto
[tools]
node = "22"               # Versione major esatta
python = "3.12"            # Versione minor esatta
terraform = "latest"       # Sempre l'ultima
ruby = "3.3.0"             # Versione patch esatta
go = "prefix:1.22"         # Ultima 1.22.x

[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost/mydb"
# Carica da file .env
_.file = ".env"

[tasks.build]
description = "Build the project"
run = "npm run build"
depends = ["install"]      # Esegui 'install' prima

[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 (compatibile asdf)

# .tool-versions — compatibile con asdf
node 22.0.0
python 3.12.1
ruby 3.3.0

Gerarchia Configurazione (Vince la più specifica)

  1. mise.toml nella directory corrente
  2. mise.toml nelle directory genitore (risalendo)
  3. ~/.config/mise/config.toml (globale)

Diagnostica e Utilità

ComandoDescrizione
mise doctorDiagnostica problemi di configurazione
mise versionMostra versione mise
mise self-updateAggiorna mise stesso
mise cache clearCancella cache di download e build
mise reshimRigenera file shim
mise deactivateDisattiva mise nella shell corrente
mise lockCrea un lockfile per installazioni riproducibili
mise config lsElenca tutti i file di configurazione attivi

Gestione Plugin

ComandoDescrizione
mise plugins lsElenca plugin installati
mise plugins install terraformInstalla un plugin
mise plugins updateAggiorna tutti i plugin
mise plugins update terraformAggiorna plugin specifico
mise backends lsElenca backend strumenti disponibili

Migrazione da Altri Strumenti

Da nvm

# Rimuovi nvm dalla configurazione shell, poi:
mise use --global node@$(node -v | sed 's/v//')

Da asdf

# mise legge nativamente i file .tool-versions
# Basta installare mise e attivarlo — i file .tool-versions esistenti funzionano

Da direnv

# Sposta variabili env nella sezione [env] di mise.toml
# mise gestisce nativamente variabili env con scope directory

Flussi di Lavoro Comuni

# Configura un nuovo progetto
cd ~/projects/my-app
mise use node@22 python@3.12
mise set NODE_ENV=development

# Clona e bootstrap un progetto
git clone repo && cd repo
mise install              # Installa tutti gli strumenti da mise.toml

# Esegui task di progetto
mise run dev              # Avvia server dev
mise run test             # Esegui test
mise run build            # Build per produzione

# Controlla versioni strumenti tra progetti
mise ls

# Mantieni strumenti aggiornati
mise upgrade              # Aggiorna tutti gli strumenti all'ultima

Confronto con Altri Strumenti

Funzionalitàasdfnvmdirenvmise
Multi-linguaggioSolo NodeNo
Variabili envNoNo
Task runnerNoNoNo
File configurazione.tool-versions.nvmrc.envrcmise.toml + .tool-versions
VelocitàLenta (shell)ModerataVeloceVeloce (Rust)
ShimNo

Risorse