مدير بيئة تطوير متعدد اللغات يحل محل asdf وnvm وpyenv وdirenv وmake في أداة واحدة. إدارة إصدارات الأدوات ومتغيرات البيئة ومهام المشروع — كل ذلك من ملف تكوين واحد.
| المنصة | الأمر |
|---|
| macOS/Linux (موصى به) | 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 (All platforms) | cargo install mise |
| Nix | nix-env -iA nixpkgs.mise |
| Docker | docker run jdx/mise |
| الشِل | ملف التكوين | الأمر المطلوب إضافته |
|---|
| 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 |
| الأمر | الوصف |
|---|
mise use node@22 | تثبيت Node.js 22 وتعيينه للدليل الحالي |
mise use python@3.12 | تثبيت Python 3.12 للدليل الحالي |
mise use --global node@22 | تعيين Node.js 22 كافتراضي عام |
mise use node@lts | استخدام أحدث إصدار LTS |
mise use node@latest | استخدام أحدث إصدار مطلق |
mise install | تثبيت جميع الأدوات من mise.toml / .tool-versions |
mise install node | تثبيت الإصدار المُكوَّن من Node.js |
mise install node@20 | تثبيت إصدار محدد |
mise uninstall node@18 | إزالة إصدار محدد |
mise upgrade node | ترقية Node.js إلى أحدث إصدار مطابق |
mise upgrade | ترقية جميع الأدوات |
mise ls | قائمة جميع إصدارات الأدوات المثبتة |
mise ls node | قائمة إصدارات Node.js المثبتة |
mise ls-remote node | إظهار جميع إصدارات Node.js المتاحة |
mise which node | إظهار مسار الملف التنفيذي النشط node |
mise where node@22 | إظهار دليل التثبيت لـ Node.js 22 |
mise search python | البحث عن الأدوات المتاحة المطابقة لـ “python” |
mise exec node@20 -- node -v | تشغيل أمر مع إصدار أداة محدد |
Node.js، Python، Ruby، Go، Rust، Java، Erlang، Elixir، PHP، Terraform، kubectl، Helm، Deno، Bun، والمئات غيرها عبر الإضافات.
| الأمر | الوصف |
|---|
mise set MY_VAR=value | تعيين متغير بيئة للدليل الحالي |
mise set --global API_KEY=xyz | تعيين متغير بيئة عام |
mise unset MY_VAR | إزالة متغير بيئة |
mise env | إظهار جميع متغيرات البيئة النشطة |
mise env --json | إظهار متغيرات البيئة كـ JSON |
| الأمر | الوصف |
|---|
mise run build | تشغيل مهمة “build” |
mise run test | تشغيل مهمة “test” |
mise run lint -- --fix | تشغيل المهمة مع وسائط إضافية |
mise tasks ls | قائمة جميع المهام المتاحة |
mise tasks info build | إظهار تفاصيل حول مهمة “build” |
mise tasks add build "npm run build" | إنشاء مهمة جديدة |
mise tasks edit build | تحرير مهمة في المحرر |
mise tasks deps | إظهار شجرة تبعيات المهام |
mise tasks validate | التحقق من صحة تكوين المهام |
# .mise.toml أو mise.toml في جذر المشروع
[tools]
node = "22" # إصدار رئيسي دقيق
python = "3.12" # إصدار ثانوي دقيق
terraform = "latest" # الأحدث دائمًا
ruby = "3.3.0" # إصدار التصحيح الدقيق
go = "prefix:1.22" # أحدث 1.22.x
[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost/mydb"
# التحميل من ملف .env
_.file = ".env"
[tasks.build]
description = "Build the project"
run = "npm run build"
depends = ["install"] # تشغيل 'install' أولاً
[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
node 22.0.0
python 3.12.1
ruby 3.3.0
mise.toml في الدليل الحالي
mise.toml في الأدلة الأبوية (السير للأعلى)
~/.config/mise/config.toml (عام)
| الأمر | الوصف |
|---|
mise doctor | تشخيص مشاكل التكوين |
mise version | إظهار إصدار mise |
mise self-update | تحديث mise نفسه |
mise cache clear | مسح ذاكرات التخزين المؤقت للتنزيل والبناء |
mise reshim | إعادة إنشاء ملفات shim |
mise deactivate | إلغاء تنشيط mise في الشِل الحالي |
mise lock | إنشاء ملف قفل لتثبيتات قابلة للتكرار |
mise config ls | قائمة جميع ملفات التكوين النشطة |
| الأمر | الوصف |
|---|
mise plugins ls | قائمة الإضافات المثبتة |
mise plugins install terraform | تثبيت إضافة |
mise plugins update | تحديث جميع الإضافات |
mise plugins update terraform | تحديث إضافة محددة |
mise backends ls | قائمة الخلفيات المتاحة للأدوات |
# إزالة nvm من تكوين الشِل، ثم:
mise use --global node@$(node -v | sed 's/v//')
# mise يقرأ ملفات .tool-versions أصليًا
# فقط ثبت mise وفعله — ملفات .tool-versions الموجودة تعمل
# نقل متغيرات البيئة إلى قسم [env] في mise.toml
# mise يتعامل مع متغيرات البيئة المحددة بالدليل أصليًا
# إعداد مشروع جديد
cd ~/projects/my-app
mise use node@22 python@3.12
mise set NODE_ENV=development
# استنساخ وتهيئة مشروع
git clone repo && cd repo
mise install # تثبيت جميع الأدوات من mise.toml
# تشغيل مهام المشروع
mise run dev # بدء خادم التطوير
mise run test # تشغيل الاختبارات
mise run build # البناء للإنتاج
# التحقق من إصدارات الأدوات عبر المشاريع
mise ls
# الحفاظ على الأدوات محدثة
mise upgrade # ترقية جميع الأدوات إلى الأحدث
| الميزة | asdf | nvm | direnv | mise |
|---|
| متعدد اللغات | نعم | Node فقط | لا | نعم |
| متغيرات البيئة | لا | لا | نعم | نعم |
| مشغل المهام | لا | لا | لا | نعم |
| ملف التكوين | .tool-versions | .nvmrc | .envrc | mise.toml + .tool-versions |
| السرعة | بطيء (shell) | متوسط | سريع | سريع (Rust) |
| Shims | نعم | نعم | لا | نعم |