Traffine I/O

Bahasa Indonesia

2022-02-11

npm

Apa itu npm

npm, singkatan dari Node.js Package Manager, adalah alat yang mendasar dalam dunia pengembangan JavaScript. Awalnya dirancang untuk mengelola pustaka Node.js, namun telah berevolusi menjadi standar de facto untuk mengelola proyek JavaScript.

npm memiliki dua peran. Ini adalah utilitas baris perintah yang membantu pengembang dalam instalasi paket, manajemen versi, dan manajemen dependensi. Selain itu, berfungsi sebagai database online, bertindak sebagai repository di mana paket JavaScript disimpan dan dibagikan.

Penggunaan npm menyederhanakan proses berbagi dan penggunaan ulang kode. Ini memungkinkan pengembang untuk merakit proyek mereka seperti balok bangunan menggunakan komponen yang dapat digunakan ulang. Hal ini pada gilirannya secara signifikan mempercepat proses pengembangan dan meningkatkan produktivitas.

Menginstal npm

npm didistribusikan bersama Node.js, yang berarti bahwa saat Anda mengunduh dan menginstal Node.js, Anda secara otomatis mendapatkan npm terpasang di komputer Anda.

Cara Kerja npm

Ketika sebuah paket diinstal menggunakan npm, ia berkomunikasi dengan registry-nya, mencari paket di database, mengambilnya, dan menyimpannya ke dalam proyek. Paket-paket ini disimpan dalam file yang dikenal sebagai package.json, yang bertindak sebagai manifesto untuk proyek saat ini, melacak dependensinya dan metadata lainnya.

Direktori node_modules adalah tempat npm menginstal dependensi proyek Anda. Saat Anda menjalankan npm install, npm secara otomatis membuat direktori ini jika tidak ada, dan menginstal paket di sana.

Saat Anda menjalankan npm install [nama-paket], npm terhubung ke registry npm, mengambil paket, dan menempatkannya di folder node_modules.

Perintah npm Umum

npm menyediakan berbagai perintah untuk membantu dalam manajemen paket. Pada bab ini, saya akan membahas beberapa perintah yang paling umum dan berguna yang akan Anda gunakan dalam pengembangan sehari-hari.

  • npm init
    Perintah ini digunakan untuk membuat file package.json baru di direktori proyek Anda. Ini akan meminta Anda untuk memasukkan beberapa informasi seperti nama proyek, versi, deskripsi, dll. Jika Anda ingin dengan cepat menghasilkan file package.json dengan nilai default, Anda dapat menggunakan flag -y atau --yes, seperti ini: npm init -y.

  • npm install (atau npm i)
    Ini mungkin adalah perintah npm yang paling sering digunakan. Ini digunakan untuk menginstal paket ke proyek Anda. Anda dapat menentukan nama paket seperti ini: npm install <nama-paket>. Menjalankan npm install tanpa nama paket akan menginstal semua dependensi yang terdaftar dalam file package.json Anda.

  • npm uninstall
    Perintah ini menghapus paket dari proyek Anda. Ini juga memperbarui file package.json dan package-lock.json. Penggunaan: npm uninstall <nama-paket>.

  • npm update
    Perintah ini mengupdate paket-paket Anda ke versi terbaru sesuai dengan rentang versi semantik yang didefinisikan dalam file package.json Anda. Jika Anda ingin memperbarui paket tertentu, Anda dapat menentukan nama paket: npm update <nama-paket>.

  • npm list
    Perintah ini akan menampilkan pohon dependensi proyek Anda, menunjukkan semua paket yang terinstal dan versi-versinya. Jika Anda ingin melihat dependensi dari paket tertentu, gunakan npm list <nama-paket>.

  • npm run
    Perintah ini digunakan untuk menjalankan skrip yang didefinisikan dalam file package.json Anda. Misalnya, jika Anda memiliki skrip bernama "test" dalam file package.json Anda, Anda dapat menjalankannya dengan npm run test.

  • npm publish
    Jika Anda telah membuat paket Anda sendiri dan ingin membagikannya dengan dunia, Anda dapat menggunakan npm publish untuk mempublikasikan paket Anda ke registry npm.

  • npm version
    Perintah ini membantu Anda untuk meningkatkan versi paket Anda, mengikuti aturan versi semantik. Anda dapat menggunakan npm version patch untuk meningkatkan patch version, npm version minor untuk versi minor, dan npm version major untuk versi mayor.

package.json dan package-lock.json

Pada bab ini, saya akan membahas dua file penting dalam proyek yang berbasis npm: package.json dan package-lock.json. File-file ini memainkan peran penting dalam mendefinisikan proyek Anda dan mengelola dependensinya.

package.json

File package.json adalah file manifesto yang berisi metadata tentang proyek Anda. Ini adalah peta jalan untuk aplikasi Anda dan mencakup informasi seperti nama proyek, versi, deskripsi, penulis, lisensi, dan lain-lain. Ini juga mencantumkan dependensi proyek, memungkinkan siapa saja untuk menginstal semua paket yang diperlukan dengan satu perintah npm install.

Berikut adalah contoh sederhana file package.json:

package.json
{
  "name": "my-awesome-project",
  "version": "1.0.0",
  "description": "This is my awesome project",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Your Name",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}

Dalam contoh ini, bagian scripts mendefinisikan tugas-tugas yang dapat dijalankan dengan perintah npm run. Bagian dependencies mencantumkan semua paket yang dibutuhkan proyek Anda untuk berjalan. Dalam contoh ini, proyek kita memiliki satu dependensi: paket express.

package-lock.json

File package-lock.json dihasilkan secara otomatis untuk setiap operasi di mana npm memodifikasi struktur direktori node_modules atau file package.json. Ini menjelaskan struktur tepat yang dihasilkan, sehingga instalasi selanjutnya dapat menghasilkan struktur yang identik, terlepas dari pembaruan dependensi yang terjadi di antara.

File package-lock.json sangat penting untuk memastikan bahwa dependensi proyek Anda tetap sama di semua lingkungan. Ini mencantumkan semua dependensi proyek Anda dan versi yang tepat, beserta versi dependensi mereka, dan seterusnya.

Meskipun file package.json dapat diedit secara manual, Anda seharusnya tidak pernah mengedit file package-lock.json secara langsung. Ini selalu harus dihasilkan dan diperbarui oleh npm.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!