Skip to content

Beralih Antar Proyek

Salah satu manfaat utama Volta adalah penanganannya yang mulus terhadap berbagai versi alat di seluruh proyek. Halaman ini menjelaskan bagaimana Volta secara otomatis mengelola lingkungan JavaScript Anda saat Anda berpindah antar proyek.

Pergantian Versi Otomatis

Tidak seperti manajer versi lainnya yang memerlukan Anda untuk beralih secara manual antar versi alat, Volta menangani ini secara otomatis berdasarkan direktori saat ini.

Cara Kerjanya

  1. Saat Anda menjalankan perintah JavaScript (seperti node, npm, atau biner paket), shim Volta mencegat perintah tersebut
  2. Volta memeriksa direktori saat ini untuk melihat apakah Anda berada dalam proyek dengan versi alat yang dipin
  3. Jika ya, Volta menggunakan versi yang dipin dari package.json proyek tersebut
  4. Jika Anda tidak berada dalam proyek dengan versi yang dipin, Volta menggunakan alat default Anda

Semua ini terjadi secara transparan tanpa perintah tambahan.

Contoh Alur Kerja

Bayangkan Anda memiliki dua proyek dengan persyaratan Node.js yang berbeda:

Proyek A (~/projects/project-a/package.json):

json
{
  "volta": {
    "node": "14.19.1",
    "npm": "6.14.16"
  }
}

Proyek B (~/projects/project-b/package.json):

json
{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0"
  }
}

Alur kerja Anda mungkin terlihat seperti ini:

bash
# Di Proyek A
cd ~/projects/project-a
node --version  # Menampilkan v14.19.1
npm --version   # Menampilkan v6.14.16

# Beralih ke Proyek B
cd ~/projects/project-b
node --version  # Secara otomatis menampilkan v16.14.2
npm --version   # Secara otomatis menampilkan v8.5.0

# Di luar proyek mana pun
cd ~
node --version  # Menampilkan versi Node default Anda

Proyek Bersarang

Jika Anda memiliki proyek bersarang, Volta akan menggunakan versi alat dari package.json terdekat dengan bagian volta.

Misalnya:

/parent-project/package.json (memiliki bagian volta dengan node@14)
/parent-project/child-project/package.json (memiliki bagian volta dengan node@16)
/parent-project/other-directory/ (tidak ada package.json)

Jika Anda menjalankan perintah di:

  • /parent-project/child-project/ - Volta menggunakan Node.js 16
  • /parent-project/other-directory/ - Volta menggunakan Node.js 14
  • /parent-project/ - Volta menggunakan Node.js 14

Biner Paket

Pergantian otomatis Volta juga berlaku untuk biner paket. Misalnya, jika Anda memiliki versi TypeScript spesifik proyek dan menjalankan tsc, Volta memastikan bahwa versi yang benar digunakan.

Paket Global vs Lokal

Saat Anda menjalankan biner paket:

  1. Jika biner ada di node_modules/.bin/ proyek Anda, Volta menggunakan versi tersebut
  2. Jika tidak, tetapi paket diinstal secara global melalui Volta, itu menggunakan versi tersebut
  3. Jika tidak, itu menampilkan kesalahan bahwa perintah tidak ditemukan

Pemecahan Masalah

Jika Anda mengalami masalah dengan pergantian versi:

  • Verifikasi proyek Anda memiliki bagian volta di package.json
  • Jalankan volta list all untuk memeriksa alat yang terinstal
  • Periksa bahwa alat yang Anda butuhkan إما dipin ke proyek Anda atau diinstal sebagai versi default
  • Jalankan volta which node untuk melihat versi Node.js mana yang digunakan Volta dan mengapa

Released under the BSD 2-Clause License.