Cron Schedule Hapus node_modules

29/12/2022

Sering kali frontend developer menggunakan library-library javascript tertentu untuk memudahkan pemecahan masalah dalam development. Biasanya, package manager yang digunakan seperti npm atau yarn secara otomatis mengunduh file-file yang diperlukan dan terkumpul dalam satu direktori bernama node_modules.

Semakin banyak library yang digunakan atau project yang dibuat akan semakin besar storage yang dibutuhkan. Mungkin perlu untuk menghapus direktori node_modules ini dari development project untuk efisiensi storage yang kita punya secara berkala.

total size direktori node_modules

Untungnya, pada operasi sistem UNIX memiliki utilitas yang memungkinkan operasi sistem mengeksekusi perintah-perintah CLI pada waktu tertentu secara otomatis. Perintah tersebut sering disebut sebagai cron.

Untuk memanfaatkan cron pada sistem operasi UNIX bisa dilakukan dengan menjalankan perintah crontab. Crontab akan mengeksekusi perintah atau shell yang terdapat pada cron jobs-nya sesuai interval waktu yang di-setup.

Pada konteks menghapus direktori node_modules di jadwal tertentu, maka yang diperlukan adalah perintah dasar CLI untuk mencari semua direktori node_modules pada suatu direktori kemudian menghapus semua direktori node_modules. Selain itu menambahkan shell yang berisi perintah menghapus pada cron jobs.

Buat shell script untuk hapus node_modules di direktori yang diinginkan dengan editor text,

nano remove_node_modules.sh

Tambahkan perintah untuk melakukan pencarian dan penghapusan files/direktori dengan perintah find.

/usr/bin/find {path_to_directory} -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;

Setelah membuat shell script berisi perintah CLI, pilih default editor crontab untuk memudahkan input perintah cron jobs nya.

export EDITOR=/usr/bin/nano

Untuk membuat atau mengedit cron, bisa dilakukan dengan perintah crontab.

crontab -e

Command crontab -e akan membuka text editor, setelah itu input perintah eksekusi shell script yang telah dibuat dan waktu interval eksekusinya. Contoh di setiap jam 7 pagi, cron akan menghapus seluruh direktori node_modules dengan perintah sebagai berikut.

0 7 * * * /Users/alvinmiftah/remove_node_modules.sh

Setelah menyimpan crontab yang dibuat maka akan secara otomatis sistem menjadwalkan cron pada waktu yang sudah dikonfigurasi.

Adapun sintaks dasar daripada crontab untuk menjadwalkan waktu eksekusi jobs seperti berikut.

crontab command

Setiap parameter yang dikosongkan direpresentasikan dengan tanda bintang (*). Seperti contoh kasus di atas untuk menjalankan jobs pada setiap jam 7 pagi, parameternya menjadi 0 7 * \* \*

Selain membuat atau mengedit cron, crontab yang telah dibuat dapat dilihat kembali.

crontab -l

Crontab yang sudah dibuat dapat dihapus.

crontab -r