Pengertian NPM Sebuah Dasar Untuk Pemula
Apa Itu NPM ?
NPM (Node Package Manager) adalah sebuah repository online di mana penggunanya dapat membagikan modul Node.js dan aplikasi karyanya. NPM terdiri dari klien baris perintah yang berinteraksi dengan registri jarak jauh. Ini memungkinkan pengguna untuk menggunakan dan mendistribusikan modul JavaScript yang tersedia di registri.
Registri tidak memiliki proses pemeriksaan untuk pengiriman, yang berarti bahwa paket yang ditemukan di sana mungkin berkualitas rendah, tidak aman atau berbahaya. Sebaliknya, NPM mengandalkan laporan pengguna untuk menghapus paket jika melanggar kebijakan karena kualitasnya rendah, tidak aman atau jahat.
Jika ingin menggunakan sebuah modul cukup dengan mencarinya pada repository ini mengunduh, lalu menginstallnya di komputer. NPM juga merupakan command line yang digunakan untuk menginstall modul-modul tersebut beserta dependency-nya.
Sejarah NPM
NPM seluruhnya ditulis dalam JavaScript dan dikembangkan oleh Isaac Z. Schlueter sebagai hasil dari “melihat pengemasan modul dilakukan dengan sangat buruk” dan dengan inspirasi dari proyek serupa lainnya seperti PEAR (PHP) dan CPAN (Perl).
Kerusakan penting
- Pada Maret 2016, NPM menarik perhatian pers setelah sebuah paket bernama
left-pad
, yang secara historis digunakan sebagai contoh yang telah menjadi ketergantungan banyak paket JavaScript populer, tidak dipublikasikan sebagai akibat dari sengketa penamaan. Meskipun paket tersebut diterbitkan ulang tiga jam kemudian, hal itu menyebabkan gangguan yang meluas, menyebabkan NPM mengubah kebijakannya terkait pembatalan penerbitan untuk mencegah kejadian serupa di masa mendatang. - Pada Februari 2018, masalah ditemukan di versi 5.7.0 di mana menjalankan
sudo npm
di sistem Linux akan mengubah kepemilikan file sistem, merusak sistem operasi secara permanen. - Pada Juli 2018, kredensial NPM dari pengelola paket
eslint-scope
populer disusupi sehingga menghasilkan rilis berbahaya darieslint-scope
, versi 3.7.2. Kode berbahaya menyalin kredensial NPM dari mesin yang menjalankaneslint-scope
dan mengunggahnya ke penyerang. - Pada November 2018, ditemukan bahwa paket berbahaya telah ditambahkan sebagai dependensi ke versi 3.3.6 dari
event-stream
paket populer. Paket berbahaya, yang disebutflatmap-stream
, berisi muatan terenkripsi yang mencuri bitcoin dari aplikasi tertentu. Administrator NPM menanggapi dengan menghapus paket yang melanggar. - Pada bulan April 2020, paket kecil yang disebut
is-promise
mengakibatkan penghentian aplikasi dan penerapan tanpa server di seluruh dunia karena menjadi ketergantungan banyak aplikasi besar dan penting.
Cara Kerja NPM
Perlu diketahui bahwa dua role yang dikerjakan NPM untuk mendalami pengetahuan tentang apa itu NPM dan bagaimana cara kerjanya :
- Sebagai repositori untuk menerbitkan project open-source Node.js. Yang berarti, platform ini menjadi wadah offline dimana siapapun dapat menerbitkan dan membagikan tool yang ditulis dengan JavaScript.
- Npm adalah tool command line yang dapat menyalurkan interaksi pada platform online, contohnya browser dan server. Utilitas ini dapat menginstall dan uninstall package, mengelola versi dan dependensi yang diperlukan untuk menjalankan proyek.
Untuk menggunakannya harus menginstall Node.js sebagaimana Node.js dan NPM berada dalam satu bundle.
Utilitas command line NPM dapat membuat node.js bekerja dengan baik. Untuk menggunakan packagenya, sebuah proyek harus memiliki file bernama package.json. Di dalam package tersebut akan mendapati meta data tertentu pada proyeknya.
Meta data tersebut menunjukkan beberapa aspek dari proyek dengan urutan sebagai berikut :
- Nama proyek
- Versi
- Deskripsi
- Entry point
- Test command
- Repositori git
- Keyword
- Lisensi
- Dependensi
- devDependency
Meta data dapat tersebut akan mempermudah identifikasi proyek dan berlaku juga sebagai dasar untuk user dalam mendapatkan informasi proyek.
Berikut adalah contoh bagaimana dapat mengidentifikasi proyek melalui meta datanya :
{ "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "npm", "example", "basic" ], "author": "Hostinger International", "license": "MIT", "dependencies": { "express": "^4.16.4" } }
- Bernama hostinger-npm.
- Versi 1.0.0.
- Merupakan npm guide for beginners.
- Entry point dari proyek ini adalah beginner-npm.js.
- Keyword untuk menemukan proyek dalam repositori adalah npm, example dan basic.
- Pembuat proyek ini adalah Hostinger International.
- Proyek ini terlisensi oleh MIT.
- The dependencies atau modul lain yang digunakan adalah express 4.16.4.
Cara Install NPM Modules Dan Memulai Sebuah Proyek
1. Install Node.js dan NPM
Mengunduh http://installer Node.js dari situsnya.
Jika menginginkan fitur-fitur Node.js terbaru dapat mengunduh installer versi paling kini yang ada di sebelah kanan. Namun, tidak ada salahnya untuk menggunakan installer dengan versi yang lebih lama apabila tidak memerlukan fitur terbaru.
2. Cek Instalasi Node.js dan NPM
Untuk memastikan instalasi Node.js dan NPM berjalan lancar dapat memeriksanya dengan menjalankan dua perintah berikut melalui Command Prompt :
$ node -v
v0.10.9
Untuk mengetahui apakah NPM juga telah terinstall, tuliskan npm -v. Command ini akan menunjukkan versi NPM seperti :
$ npm -v
1.2.25
Npm terkenal akan oneline installernya :
$ curl https://npmjs.org/install.sh | sh
Setelah di install dapat mengupdate NPM karena versi terbaru akan selalu diupdate secara reguler. Untuk mengupdatenya, cukup download installer dari situs node.js dan jalankan lagi. Versi terbarunya akan mengganti versi yang sebelumnya secara otomatis.
Namun juga dapat mengupdatenya dengan command ini :
$ npm update -g npm
Membuat Proyek Menggunakan NPM
Jika telah memiliki Node dan NPM lalu ingin membuat sebuah proyek, jalankan command npm init. Command ini akan memulai proyek.
Sebagai contoh, mari buat direktori bernama test-npm dan cd. Sekarang, jalankan command npm :
$ npm init
Command ini sebagai tool untuk membuat file package.json untuk proyek yang dijalankan. Setelah melalui langkah-langkah npm init, file package.json akan dibuat dan ditempatkan pada direktori saat ini.
Command init dari Node package manager menjelaskan tentang proses yang dijalankan command tersebut :
mymacs-MacBook-Pro: test-npm mymac$ npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sane defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install --save` afterwards to install a package and save it as a dependency in thepackage.json file. Press ^C at any time to quit. name: (test-npm)
Respond untuk prompt npm init :
name: (test-npm)hostinger-npm version: (1.0.0)1.0.0 description: npm guide for beginner entry point: (index.js) beginner-npm.js test command: git repository: keywords: npm, example, beginner author: Hostinger Internationallicense: (ISC) MIT
Tekan “Enter” untuk menyetujuinya. Lalu, npm init akan memberi sebuah preview dari package.json yang akan dibuat.
Outputnya akan terlihat seperti ini :
{ "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "npm", "example", "basic" ], "author": "Hostinger International", "license": "MIT", "dependencies": { "express": "^4.16.4" } } Is this OK? (yes) yes mymac-MacBook-Pro: test-npm mymac$
Ketikkan “yes” dan tekan “Enter” untuk menyetujui, simpan package.json. Maka dapat menggantinya nanti, entah dengan mengedit filenya langsung atau melalui comman npm init lagi
Menginstall NPM Modules
Package pada node.js memuat semua fle yang dibutuhkan sebagai module. Module adalah library JavaScript yang dapat memasukkan ke dalam proyek.
Menginstall modul adalah hal yang paling mendasar untuk dilakukan ketika menggunakan Node package manager. Berikut adalah command untuk install modul ke direktori saat ini :
$ npm install <module>
$ npm i <module>
Pada command di atas, ganti <module> dengan nama module yang ingin di install. Dengan perintah tersebut, modul akan langsung dipasang di komputer.
Membuat Aplikasi Sederhana dengan NPM
Karena Node.js dan NPM sudah tersedia di komputer, sekarang mari coba membuat aplikasi sederhana bernama “Hello World”.
Untuk melakukan ini dianjurkan untuk menggunakan Windows PowerShell. Windows PowerShell dapat dicari melalui menu search di taskbar atau di dalam menu start.
- Ketikkan perintah berikut ini :
c:\Users\<username>\myprogram.js
Jangan lupa untuk mengganti <username> dengan username komputer sebelum menjalankan perintah tersebut.
Intinya, perintah tadi digunakan untuk membuat file bernama myprogram.js. Ketika dijalankan, akan ada pernyataan bahwa file tersebut tidak ada. Kemudian, sistem akan menanyakan jika ingin membuat file tersebut atau tidak. Pada titik ini, klik Yes untuk mengiyakannya.
- Bukalah file myprogram.js di text editor yang dimiliki. Lalu, masukkan kode ini ke dalamnya :
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('Hello World');
}).listen(8080);
Jika sudah, simpan dan tutup filenya.
- Masuklah ke Windows PowerShell lagi dan jalankan perintah berikut :
node \users\<your_username>\myprogram.js
Perintah ini berfungsi untuk menjadikan komputer sebagai server yang menjalankan aplikasi sederhana tadi.
Windows Defender akan memperingatkan bahwa komputer dapat menerima traffic. Karena ini hanya percobaan tinggal membiarkan peringatan tersebut.
Sekarang, jika ingin mengakses http://localhost:8080 melalui web browser, teks “Hello World” akan muncul pada halaman tersebut.
Untuk mematikan aplikasi ini tinggal masuk ke PowerShell dan menekan kombinasi tombol Ctrl dan C pada keyboard.