Site logo
Aug 23, 20182 mins read

Melakukan Update Dependensi NPM

Sekitar bulan November tahun 2017, Github merilis sebuah fitur yang dinamakan Security Alert. Fitur ini berfungsi untuk memeriksa repositori proyek terhadap kemungkinan celah keamanan pada dependensi yang digunakan. Jika potensi celah keamanan terdeteksi, maka Github akan memberikan notifikasi seperti berikut.

"Notifikasi fitur Security Alert pada Github untuk repositori proyek yang memiliki potensi celah keamanan pada dependensinya.
"Notifikasi fitur Security Alert pada Github untuk repositori proyek yang memiliki potensi celah keamanan pada dependensinya.

Lalu, apa yang harus dilakukan jika salah satu atau beberapa repositori kita mendapat notifikasi tersebut? Tidak usah panik, kita cukup melakukan pembaruan terhadap dependensi proyek bersangkutan.

Berikut ini adalah contoh langkah-langkah melakukan pembaruan dependensi untuk proyek berbasis Javascript yang menggunakan npm sebagai package manager. Semua langkah-langkah ini dijalankan pada terminal atau command line.

1. Install npm-check-updates

npm-check-updates atau ncu adalah alat kakas yang bisa digunakan untuk memeriksa update terbaru dari dependensi yang tercantum pada file package.json.

Install dengan menjalankan npm instal -g npm-check-updates. Disarankan untuk menginstall secara global (-g), sehingga bisa langsung digunakan untuk semua proyek berbasis npm yang kita miliki.

2. Lakukan proses audit

Masuk ke dalam direktori proyek yang ingin diperbarui, lalu jalankan ncu. Selanjutya akan tampil daftar dependensi yang memiliki update terbaru dari pembuatnya. Pembaruan itulah yang bisa jadi merupakan patch atau perbaikan atas celah keamanan di versi sebelumnya.

Melakukan audit dependensi dengan menjalankan perintah ncu.
Melakukan audit dependensi dengan menjalankan perintah ncu.

3. Perbarui package.json

Jalankan ncu -u untuk melakukan audit sekaligus memperbarui file package.json. Jika kita sudah cukup percaya diri bisa langsung menjalankan perintah ini tanpa melakukan langkah nomor 2.

Melakukan audit sekaligus memperbarui package.json dengan perintah ncu -u.
Melakukan audit sekaligus memperbarui package.json dengan perintah ncu -u.

4. Perbarui package-lock.json

File package-lock.json penting untuk optimasi penggunaan npm, selengkapnya bisa dibaca pada tautan ini. Untuk memperbarui file ini bisa dilakukan dengan menjalankan npm update maupun melakukan penghapusan direktori node_modules kemudian menjalankan ulang npm install.

Menghapus direktori node_modules lalu menjalankan npm i (npm install)
Menghapus direktori node_modules lalu menjalankan npm i (npm install)

5. Periksa perubahan repositori

Jalankan git status dan pastikan file package.json dan package-lock.json sudah berubah karena diperbarui.

Memeriksa perubahan dengan perintah git status
Memeriksa perubahan dengan perintah git status

6. Jalankan automated test bila tersedia

Jika proyek kita memiliki unit test, atau test lainnya, maka akan lebih baik jika test tersebut dijalankan untuk memastikan perubahan dependensi tidak menimbulkan kekacauan. Jika terjadi kekacauan, maka langkah tambahan yang perlu kita lakukan adalah memperbarui kode program agar sesuai dengan dependensi terbaru.

Menjalankan automated test.
Menjalankan automated test.
Hasil test menunjukkan tidak ada masalah terhadap fungsionalitas akibat pembaruan dependensi
Hasil test menunjukkan tidak ada masalah terhadap fungsionalitas akibat pembaruan dependensi

7. Update repositori Github

Lakukan commit dan push ke Github jika semua langkah-langkah di atas berhasil.

Melakukan commit dan push ke Github
Melakukan commit dan push ke Github

Tambahan

Untuk melakukan audit kita juga bisa menggunakan perintah npm outdated. Perintah ini bisa digunakan langsung tanpa menginstall alat kakas tambahan. Namun, perintah ini hanya menampilkan daftar dependensi yang sudah usang dan kita harus mengubah isi file package.json secara manual.

Sedangkan dengan ncu kita bisa melakukan audit sekaligus memperbarui file tersebut.

Melakukan audit dengan perintah npm outdated
Melakukan audit dengan perintah npm outdated
software-engineeringtoolsjavascript
Mengenal Makefile
Catatan Gitlab CI