Rumah > hujung hadapan web > tutorial js > mise vs. asdf untuk pengurusan persekitaran projek JavaScript

mise vs. asdf untuk pengurusan persekitaran projek JavaScript

DDD
Lepaskan: 2025-01-04 07:35:36
asal
290 orang telah melayarinya

Ditulis oleh Rosario De Chiara✏️

mise dan asdf ialah alatan yang direka untuk membantu pembangun mengurus berbilang versi bahasa pengaturcaraan dan persekitaran. Kedua-dua alatan itu bertujuan untuk memudahkan pembangunan polyglot dengan menjadikannya lebih mudah untuk mengurus dan bertukar antara versi alat, yang merupakan cabaran biasa apabila bekerja dengan bahasa pengaturcaraan dan rangka kerja yang berbeza.

Apa itu asdf?

asdf ialah pengurus versi popular yang menggunakan teknik yang dipanggil "shimming" untuk bertukar antara versi alat yang berbeza seperti Python, Node.js dan Ruby. Ia mencipta laluan sementara ke versi tertentu, mengubah suai persekitaran untuk memastikan versi alat yang betul digunakan dalam projek yang berbeza. Walau bagaimanapun, kaedah ini boleh memperkenalkan prestasi overhed kerana cara shim ini berfungsi.

Apa itu mise?

mise, singkatan untuk ungkapan Perancis "mise-en-place," iaitu cara anda menyediakan meja, berusaha untuk menambah baik pada asdf dengan menghilangkan pergantungan pada shim.

Ditulis dalam Rust, mise mengubah suai terus pembolehubah persekitaran PATH, yang membawa kepada masa pelaksanaan yang lebih pantas. Ia direka bentuk untuk berfungsi dengan lancar dengan pemalam asdf tetapi menawarkan ciri seperti padanan kabur arahan dan keupayaan untuk memasang berbilang versi alat yang sama secara serentak.

Bermula dengan asdf

Untuk memasang asdf, ikut panduan permulaan untuk memasang prasyarat bergantung pada sistem anda. Setelah persekitaran sedia, anda boleh git mengklon repositori rasmi dalam direktori rumah anda:

 $ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Arahan di atas akan mengklon ke dalam direktori .asdf semua skrip dan fail konfigurasi yang diperlukan untuk memuktamadkan pemasangan.

Langkah seterusnya, daripada panduan pemasangan di atas, adalah untuk melaksanakan skrip pemasangan. Sekali lagi, langkah ini bergantung pada butiran persekitaran dan sistem pengendalian anda, jadi ikuti sahaja panduan untuk menambah skrip skrip yang betul dalam skrip permulaan shell anda (cth., .bashrc, .bash_profile, dll.). Pada penghujung proses ini dan, biasanya selepas anda memulakan semula shell anda, anda sepatutnya dapat menjalankan asdf sebagai arahan:

mise vs. asdf for JavaScript project environment management

Pada ketika ini, asdf sedang berjalan tetapi untuk menjadikan sesuatu yang berguna dengannya, anda mesti memasang pemalam untuk mengendalikan alat (dalam bahasa asdf) yang berkaitan dengan projek yang anda ingin bangunkan (cth., Node.js, ular sawa, dll.).

Untuk tujuan ini, kami memasang pemalam untuk Node.js. Dalam asdf, pemalam ialah sekeping kod yang akan membolehkan anda menyesuaikan versi rangka kerja atau pustaka yang berbeza. Dalam kes ini, kami akan memasang pemalam Node.js dan kemudian memasang beberapa versi Node.js hanya untuk memahami cara asdf akan mengendalikannya.

Kami akan memasang pemalam Node.js dengan kod berikut:

 $ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Sila ambil perhatian bahawa anda perlu menangani secara eksplisit repositori git yang mengandungi kod sumber pemalam. Setelah pemalam itu disediakan, anda boleh menggunakannya untuk memasang versi Node.js tertentu dengan arahan berikut:

 $ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dalam contoh ini, anda memasang versi terkini yang, pada masa penulisan, ialah 23.1.0. Dengan arahan berikut, anda memasang versi khusus Node.js:

 $ asdf install nodejs latest
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Untuk memastikan kedua-duanya tersedia dalam sistem anda, gunakan yang berikut:

 $ asdf install nodejs 20.0.0
Salin selepas log masuk
Salin selepas log masuk

Untuk memilih versi Node.js untuk digunakan, gunakan arahan berikut:

 $ asdf shim-versions node
 nodejs 20.0.0
 nodejs 23.1.0
Salin selepas log masuk
Salin selepas log masuk

asdf mengendalikan pelbagai versi alat dengan mengisi fail bernama [.tool-versions](https://asdf-vm.com/manage/configuration.html#tool-versions) dengan format berikut:

 $ asdf global nodejs 20.0.0
 $ node --version
 v20.0.0
 $ asdf global nodejs 23.1.0
 $ node --version
 v23.1.0
Salin selepas log masuk

Fail .tool-versions dimanipulasi secara automatik oleh asdf dengan arahan untuk menentukan versi mana yang anda ingin gunakan, seperti yang kami lakukan di atas dengan Node.js versi 20.0.0. Bergantung pada parament global, shell dan local, kami akan menambah versi alat pada fail .tool-versions tertentu dengan kesan berbeza pada persekitaran anda. Berikutan, terdapat penjelasan tentang kesan parameter sekiranya kami memasang Node.js versi 20.0.0:

  • asdf global nodejs 20.0.0: Dalam kes ini, kami berhasrat untuk menggunakan versi khusus ini di seluruh sistem di mana sahaja ia tidak dinyatakan secara berbeza
  • asdf shell nodejs 20.0.0: Ini adalah kes di mana kita mahu menggunakan versi Node.js ini hanya untuk sesi shell semasa
  • asdf local nodejs 20.0.0: Rasa perintah ini akan mencipta .tool-versions yang menentukan versi Node.js hanya sah untuk direktori tempat perintah itu dilaksanakan. Ini bermakna kami boleh mempunyai versi yang berbeza bagi alat yang sama dalam sub-direktori projek anda yang berbeza. Ini adalah ciri yang cukup kemas, relevan untuk projek yang kompleks. Dalam imej berikut, anda boleh melihat bagaimana ini mempengaruhi persekitaran anda:
ruby 2.5.3
nodejs 10.15.0
Salin selepas log masuk

Dengan arahan pertama, kami memberitahu asdf untuk menggunakan versi 20.0.0 dalam direktori rumah dan nod --version mengesahkan versi. Kemudian, kami mencipta direktori bernama ujian. Dalam ujian, kami melaksanakan asdf, menyatakan versi berbeza untuk Node (versi 23.1.0) dan, sekali lagi, nod --version mengesahkan bahawa kami menggunakan versi 23.1.0. Akhirnya, kembali ke direktori utama, anda boleh melihat bagaimana versi Node.js secara setempat masih 20.0.0.

Apa itu shim?

Sekarang kami mempunyai asdf yang bekerja pada sistem kami, mari kita pelajari apa itu shim dan mengapa ia penting apabila bekerja dengan asdf.

Dalam sains komputer, shim ialah satu cara untuk mengubah hala arahan (cth., penyerahan kaedah perpustakaan) secara telus antara versi yang berbeza. Kuncinya di sini ialah perkataan "secara telus." Keseluruhan idea asdf adalah untuk membenarkan pengguna menukar apa yang sebenarnya dipanggil apabila anda menulis, katakan, nod atau python atau mana-mana pakej lain, dengan cara yang telus. Pengguna terus menaip nod atau python tetapi asdf telah menyediakan laluan berbeza – shim – ke versi yang betul bergantung pada apa yang ditulis dalam fail .tool-versions.

Pemalam hanyalah satu set skrip shell pintar yang membenarkan asdf memilih versi arahan tertentu yang betul (cth., semak pemalam Node.js). Arahan dalam direktori bin hanya melaksanakan perkara yang asdf mesti laksanakan apabila anda menggunakan pemalam Node.js untuk memasang versi baharu, pilih versi tertentu untuk digunakan, dsb.

Bermula dengan mise

Proses memasang mise lebih mudah berbanding asdf kerana anda tidak perlu mengklon repositori git:

 $ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Panduan pengaktifan agak mudah; sebaik sahaja anda melaksanakan arahan di atas dan mulakan semula shell anda, anda akan dapat menjalankan yang berikut:

 $ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Ini akan menunjukkan status pemasangan anda. Setelah mise dipasang, anda mungkin perlu mengaktifkannya dengan perintah [mise activate](https://mise.jdx.dev/cli/activate.html).

Pada ketika ini, arahan mise tersedia untuk digunakan untuk tugas yang paling biasa: memasang versi rangka kerja tertentu untuk menjadikannya tersedia secara global untuk sistem:

 $ asdf install nodejs latest
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kita bermula daripada situasi di mana nod boleh laku tidak berada dalam sistem. Menggunakan arahan mise, kami memasang versi nod tertentu secara global untuk menjadikannya tersedia. Untuk mengesahkan versi alatan yang dipasang pada masa ini, anda boleh menggunakan arahan berikut:

 $ asdf install nodejs 20.0.0
Salin selepas log masuk
Salin selepas log masuk

Dalam arahan di atas, anda boleh melihat alat nod dipasang dalam kotak di atas dan versi Python.

Membandingkan asdf vs. mise

Rangka kerja mise menggunakan mekanisme asdf yang sama untuk mengendalikan konfigurasi alat yang berbeza di seluruh sistem dan dalam direktori tertentu. Peranan fail .tool-versions dalam asdf dimainkan oleh fail mise.toml, yang akan mengumpulkan konfigurasi.

Dalam mise, tiada konsep yang serupa dengan pemalam asdf, dan ini adalah perkara yang baik kerana, semasa dalam asdf, memasang versi alat tertentu – katakan node@20.0.0 – ialah proses dua langkah ( mula-mula memasang pemalam Node.js dan kemudian versi tertentu Node). Dalam mise, anda hanya menangani versi tunggal alat yang anda perlukan, dan mise akan menangani semua beban berat untuk mengkonfigurasinya untuk anda di sebalik tabir. Dalam dua kotak berikut, anda boleh melihat bagaimana arahan asdf diterjemahkan kepada mise:

 $ asdf shim-versions node
 nodejs 20.0.0
 nodejs 23.1.0
Salin selepas log masuk
Salin selepas log masuk

Sebenarnya, ini semua boleh dilakukan dalam satu langkah yang memasang pemalam dan masa jalan serta menetapkan versi:

 $ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Perkataan umum asdf diselesaikan secara elegan oleh gula sintaksis mise. Namun, mise berbeza dalam cara ia mengendalikan pelbagai versi, yang mempunyai kesan yang lebih luas pada keseluruhan pengalaman. Dalam imej berikut, kami menggambarkan perkara yang berlaku apabila anda melaksanakan perintah nod dalam persekitaran di mana asdf berfungsi:

mise vs. asdf for JavaScript project environment management

Proses ini, sudah tentu, memberi kesan kepada masa yang diperlukan untuk melaksanakan arahan. Sebaliknya, mise menyelesaikan masalah yang sama untuk memilih alat yang betul bergantung pada konfigurasi dengan memanfaatkan mekanisme lain: pembolehubah PATH, yang merupakan mekanisme asli sistem pengendalian untuk melaksanakan arahan.

Persembahan adalah sama dengan menjalankan arahan (cth., nod) tanpa menggunakan mise. Demi rasa ingin tahu, mise berfungsi secara berbeza berkenaan dengan asdf: mise menjejaki setiap perubahan direktori supaya apabila pengguna menukar direktori, mise memanggil cangkuk dalaman untuk mengemas kini pembolehubah PATH. Cangkuk ini sangat cekap kerana ia ditulis dalam Rust dan ia akan menyediakan pembolehubah PATH dengan cepat untuk mengkonfigurasi persekitaran anda.

Kesimpulan

Kedua-dua asdf dan mise menguruskan berbilang versi alat dengan berkesan, masing-masing dengan mekanisme unik. mise cemerlang dalam kecekapan terima kasih kepada mekanisme cangkuk PATHnya, manakala asdf menawarkan keserasian alat yang lebih luas tetapi dengan pertukaran prestasi mekanisme shimnya. keserasian mise dengan pemalam asdf merapatkan jurang antara alatan.

Sama ada mengutamakan kelajuan atau pemilihan, kedua-dua alatan memperkasakan pembangun untuk mengurus persekitaran mereka dengan mudah, menawarkan ekosistem yang berkembang pesat untuk pelbagai pakej dan alatan.


Sediakan dengan penjejakan ralat moden LogRocket dalam beberapa minit:

  1. Lawati https://logrocket.com/signup/ untuk mendapatkan ID apl.
  2. Pasang LogRocket melalui NPM atau tag skrip. LogRocket.init() mesti dipanggil bahagian klien, bukan bahagian pelayan.

NPM:

 $ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Tag Skrip:

 $ asdf install nodejs latest
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

3.(Pilihan) Pasang pemalam untuk penyepaduan yang lebih mendalam dengan timbunan anda:

  • Perisian tengah Redux
  • ngrx middleware
  • Pemalam Vuex

Mulakan sekarang.

Atas ialah kandungan terperinci mise vs. asdf untuk pengurusan persekitaran projek JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan