11 Alat Pengurusan Ketergantungan untuk Pembangun Web
Ketergantungan adalah asas perkembangan web moden. Ini adalah alat, plugin, perpustakaan dan rangka kerja yang diperlukan perlu untuk membina aplikasi web peringkat tinggi.
Bilangan dependensi semata-mata telah merosot dalam beberapa tahun kebelakangan ini. Dari masa ke masa pemaju telah menerima pakai alat pengurusan kebergantungan yang meringankan tekanan menjaga kebergantungan yang teratur dan terkini. Alat ini membawa kepada aliran kerja yang optimum untuk pemaju dan pengurus projek.
Saya telah mengkatalogkan alat pergantungan yang terbaik di sini termasuk kedua-dua platform yang mantap dan baru muncul. Pembangunan web profesional memerlukan pembelajaran yang berterusan dan saya berpendapat pengurusan kebergantungan adalah pengetahuan yang bernilai.
1. NPM
Saya tidak dapat menulis panduan ini tanpa memberi kredit kepada Pengurus Pakej Node. Dibina pada Node.js, sistem ini mempunyai repositori yang luar biasa 100,000+ pakej dan modul.
Setiap projek boleh menggunakan persediaan fail package.json melalui NPM dan juga dikendalikan dengan Gulp (pada Node). Ketergantungan boleh dikemas kini dan dioptimumkan terus dari terminal. Dan anda boleh membina projek baru dengan fail ketergantungan dan nombor versi secara automatik ditarik dari fail package.json.
NPM sangat berharga untuk lebih daripada sekadar pengurusan ketergantungan, dan praktikalnya alat yang mesti tahu untuk pembangunan web moden. Jika anda bingung, sila lihat benang Reddit ini untuk penjelasan pemula.
2. Bower
Sistem pengurusan pakej Bower berjalan pada NPM yang nampaknya sedikit berlebihan tetapi terdapat perbezaan antara kedua-duanya, terutama yang NPM menawarkan lebih banyak ciri sementara Bower bertujuan untuk pengurangan masa fail dan beban untuk kebergantungan frontend.
Lihat soalan Stack ini untuk mengetahui lebih lanjut mengenai perbezaan halus.
Sesetengah devs berhujah bahawa Bower pada dasarnya usang kerana ia berjalan di NPM, sebuah perkhidmatan yang boleh melakukan hampir semua Bower boleh lakukan. Secara umumnya, ini tidak salah.
Tetapi devs sepatutnya menyedari Bower boleh mengoptimumkan aliran kerja secara khusus dengan kebergantungan frontend. Saya cadangkan artikel Ben McCormick Is Bower Berguna untuk mengetahui lebih lanjut mengenai nilai yang ditawarkan dari kedua-dua alat pengurusan pakej.
3. RubyGems
RubyGems adalah pengurus pakej untuk Ruby dengan populariti tinggi di kalangan pemaju web. Projek ini adalah sumber terbuka dan termasuk semua permata Ruby percuma.
Untuk memberikan gambaran ringkas untuk pemula, a “permata” hanya beberapa kod yang berjalan pada persekitaran Ruby. Ini boleh membawa kepada program-program seperti Bundler yang menguruskan versi permata dan menyimpan segala-galanya dikemas kini.
Pemaju landasan akan menyukai ciri ini, tetapi bagaimana pula dengan pakej frontend? Memandangkan Ruby adalah sumber terbuka, pemaju boleh membina projek seperti Bower for Rails. Ini membawa pengurusan pakej frontend ke platform Ruby dengan lengkung pembelajaran kecil.
4. Memerlukan JS
Ada sesuatu yang istimewa mengenai RequireJS kerana ia adalah seting alat JS. Ia boleh digunakan untuk memuatkan modul JS dengan cepat termasuk modul Nod.
Memerlukan JS mengesan secara automatik kebergantungan yang diperlukan berdasarkan pada apa yang anda gunakan jadi ini mungkin serupa dengan pengaturcaraan perisian klasik di C / C ++ di mana perpustakaan disertakan dengan perpustakaan lanjut.
Anda akan menemui perbincangan GitHub yang menarik mengenai topik ini dan nilai yang ditawarkannya kepada pemaju web moden. Memandangkan alat pengurusan JS lain seperti webpack telah muncul, RequireJS masih berfungsi dalam persekitaran pengeluaran. Dan jika ia berfungsi untuk anda itu semua itu penting.
5. Jam
Pengurusan pakej berasaskan pelayar datang dalam bentuk baru dengan JamJS. Ini adalah pengurus pakej JavaScript dengan pengurusan automatik yang serupa dengan RequireJS.
Semua kebergantungan anda adalah ditarik ke dalam satu fail JS yang membolehkan anda menambah dan mengalih keluar barangan dengan cepat. Plus ini boleh dikemas kini dalam pelayar tanpa mengira alat lain yang anda gunakan (seperti RequireJS).
Perpustakaan dikemas kini berdasarkan versi terkini melalui terminal. Setiap projek boleh dicipta secara automatik dengan komponen yang dioptimumkan berdasarkan keperluan anda. Jam percuma di GitHub dan patut dilihat jika anda mempunyai masa.
6. Melindungi
Kebanyakan pemaju tahu Melayari walaupun ia bukan sebahagian daripada aliran kerja biasa mereka. Ini adalah satu lagi alat pengurusan kebergantungan yang mengoptimumkan modul dan perpustakaan yang diperlukan dengan menggabungkannya bersama.
Bungkusan ini adalah disokong dalam penyemak imbas yang bermakna anda boleh menyertakan dan menggabungkan modul dengan JavaScript biasa. Apa yang anda perlukan ialah NPM untuk memulakan dan kemudian Melayari untuk bergerak.
Lihat tutorial intro ini untuk melihat bagaimana Node boleh diuruskan tepat dalam penyemak imbas. Terdapat juga buku panduan Pemantauan yang panjang yang dihoskan di GitHub secara percuma. Idea ini adalah untuk membawa semua alat Node ini ke dalam penyemak imbas dan menjimatkan masa dengan mengautomasikan proses dengan Browserify.
7. Mantri
Masih dalam peringkat pertumbuhan awal, MantriJS adalah sistem pergantungan untuk aplikasi web tahap sederhana hingga ke-tinggi. Dependensi diuruskan melalui ruang nama dan dianjurkan secara fungsional untuk mengelakkan pertembungan dan mengurangkan kekacauan.
Mantri kini berada di v0.2.2 pada masa penulisan. Ia betul-betul sumber terbuka dan dibina untuk aplikasi web yang lebih kompleks yang memerlukan banyak kebergantungan besar. Mantri bertujuan untuk mengikuti amalan pengaturcaraan modular dan berharap untuk menggalakkan pemaju ke jalan yang sama.
8. Volo
Alat pengurusan projek volo adalah sumber terbuka NPM repo yang boleh membuat projek, menambah perpustakaan, dan mengotomatisasi aliran kerja.
Volo berjalan di dalam Node dan bergantung kepada JavaScript untuk pengurusan projek. Panduan intro ringkas boleh didapati di GitHub menerangkan proses pemasangan dan kegunaan umum. Contohnya jika anda menjalankan arahan membuat volo
anda boleh melampirkan mana-mana perpustakaan seperti Boilerplate HTML5.
Tetapi selain daripada membuat projek baru, anda juga boleh tambah / kemas kini perpustakaan untuk projek yang lebih lama. Volo mengikat semua yang anda perlukan untuk pembangunan frontend. Lihat matlamat reka bentuk volo untuk melihat bagaimana ia beroperasi dalam projek dunia sebenar.
9. Ender
Ender adalah “perpustakaan tanpa perpustakaan” dan merupakan salah satu pengurus pakej paling ringan yang anda akan dapati dalam talian. Ia membolehkan devs untuk cari melalui pakej JS dan pasang / himpunan mereka dari baris arahan. Ender difikirkan sebagai “Kakak perempuan NPM” oleh pasukan dev.
Secara semulajadi rangka kerja Ender keseluruhan boleh didapati secara percuma di GitHub. Ia hanya alat yang anda pasangkan untuk membantu menguruskan penggunaan ramalan JavaScript frontend untuk projek tempatan. Segala-galanya bertujuan untuk berjalan dengan mudah untuk potensi sepenuhnya untuk aliran kerja pemaju frontend.
Laman web Ender utama mempunyai dokumentasi yang berkualiti, jadi sepatutnya jika anda berminat.
10. pip
Kaedah yang disyorkan untuk memasang dependencies Python adalah melalui pip. Alat ini dicipta oleh Pihak Berkuasa Pembungkusan Python dan ia benar-benar sumber terbuka seperti Python itu sendiri.
Majoriti pemaju Python mengesyorkan pip untuk ketergantungan termasuk pasukan Django. Sama ada anda baru bermula dengan Python atau sudah menggunakannya secara konsisten dengan pembangunan backend, ini adalah pengurus pakej yang anda akan senang berada di dalam kotak peralatan anda.
11. Komposer
Komposer adalah pengurus pakej yang hampir sama dengan NPM, tetapi ia hanya tertumpu pada perpustakaan PHP. Anda boleh mencari senarai dependensi pada Packagist yang merangkumi rangka PHP yang besar seperti Laravel.
Jika anda seorang pemaju PHP apa-apa jenis yang saya sungguh-sungguh mengesyorkan mencari komposer. Ia mudah untuk memulakan tetapi sukar untuk dimuatkan ke dalam aliran kerja anda. Walau bagaimanapun dengan amalan ia akan menjadi bahan ruji untuk projek PHP dev.
Ini adalah alat yang serba boleh dengan potensi untuk berkembang lebih besar dalam masa. Plus NPM boleh bercampur dengan Komposer untuk membuat sistem pengurusan dependen backend + backend untuk semua projek PHP / JS anda.
Mengakhiri
Sudah jelas banyak pengurus pergantungan ini mempunyai sifat yang serupa dengan kualiti yang sama. Ada yang dibina untuk menyelesaikan masalah alternatif dan juga boleh bertembung antara satu sama lain (iaitu Komposer dan NPM).
Subjek pengurusan pergantungan boleh menjadi sukar bagi pemaju baru. Saya cadangkan memilih salah satu alat ini dan menyelidik secara mendalam untuk belajar seberapa banyak yang mungkin. Cuba buat aplikasi web kecil dan ketahui mengapa pengurusan ketergantungan berguna.
Sebaik sahaja anda mempelajari cara menggunakan alat-alat ini ke dalam alur kerja anda, anda tidak akan pernah mempertimbangkan untuk kembali.