Getting Started with NPM
Dalam menggunakan NPM kita gunakan perintah yang dituliskan pada Terminal (Linux/MacOS) atau Command Prompt/PowerShell (Windows). Pada Terminal/Command Prompt untuk menuliskan perintah NPM kita perlu menuliskan keyword npm terlebih dahulu. Contohnya ketika kita menuliskan perintah install, maka kita tuliskan.
- npm install <package-name>
Ada banyak command yang tersedia pada NPM, Untuk melihat daftarnya kita dapat gunakan help.

Lalu gunakan -h jika kita ingin melihat panduan penggunaan pada salah satu perintahnya. Contoh, Anda tidak mengetahui cara penggunaan dari perintah install, maka untuk melihat panduannya tuliskan kode berikut:
- npm install -h
Hasilnya adalah panduan dalam penggunaan perintah install.

-h dapat digunakan tidak hanya pada perintah install, namun juga pada seluruh perintah yang ada pada NPM.
Jika kita lihat panduan pada gambar di atas, kita bisa melihat terdapat “aliases”. Aliases atau alias merupakan cara lain dalam melakukan perintah tersebut. Itu berarti perintah instal dapat dituliskan dengan i, isntall, atau add.
- npm install
- npm i
- npm isntall
- npm add
- // code tersebut semua fungsinya sama
Alias ini dapat berupa cara cepat (shortcut) ataupun kesalahan pengejaan yang umum (install -> isntall). Hal tersebut sangat membantu developer agar lebih cepat dalam menuliskan sebuah perintah.
Anda bisa mendapatkan penjelasan lengkap mengenai seluruh perintah yang ada di NPM pada laman resmi berikut: https://docs.npmjs.com/cli-documentation/cli. Namun terdapat beberapa perintah penting yang akan biasa kita gunakan dalam materi atau latihan yang ada selanjutnya.
| Command | Description | Common Options |
|---|---|---|
| init | Membuat berkas package.json pada proyek | [–force|-f|–yes|-y|–scope] |
| Install | Memasang dan mendaftarkan package pada berkas package.json | [-P|–save-prod|-D|–save-dev|-O|–save-optional] [-E|–save-exact] [-B|–save-bundle] [–no-save] [–dry-run] |
| run-script | Menjalankan perintah yang terdapat pada objek scripts yang terdapat di berkas package.json. | [–silent] [– …] |
| uninstall | Menghapus dan mengeluarkan package dari berkas package.json. | [-S|–save|-D|–save-dev|-O|–save-optional|–no-save] |
| version | Untuk melihat versi package yang tersedia secara global atau lokal |
[ | major | minor | patch | premajor | preminor | prepatch | prerelease [–preid=] | from-git]
|
Catatan sebelum menuju materi selanjutnya
Pada materi Node Package Manager sambil belajar dan memahami NPM kita akan membuat sebuah aplikasi web yang menampilkan waktu dan tanggal yang berjalan. Pada pembuatan proyeknya, kita akan memanfaatkan library JQuery dan Moment.js”
Initial JavaScript Project with NPM
Setelah kita mengetahui dasar cara menggunakan perintah pada NPM, lantas bagaimana agar NPM ini dapat mengelola package pada proyek kita? Untuk menggunakan NPM dalam proyek lokal, kita membutuhkan berkas package.json. Berkas tersebut merupakan tempat menyimpan informasi aplikasi yang kita buat. Kita akan membahas lebih detail mengenai berkas ini nanti.
Untuk membuat berkas package.json sebenarnya kita dapat membuatnya sendiri layaknya membuat berkas baru pada umumnya. Namun cara tersebut bukan pendekatan yang baik. Dalam membuat berkas package.json sebaiknya kita gunakan perintah npm init pada Terminal di dalam proyek yang kita buat. Mari kita buat berkas package.json bersama-sama.
Pertama kita buat folder baru sebagai root folder dari proyek yang akan kita buat. Di sini kita beri nama folder tersebut dengan “WebClock”. Kemudian buka berkas tersebut menggunakan text editor Anda. Di sini kita contohkan menggunakan Visual Studio Code.

Kemudian buka Terminal/Command Prompt pada proyek tersebut dengan menggunakan menu Terminal -> New Terminal. Kemudian tuliskan perintah
- npm init
Untuk Anda yang tidak menggunakan Visual Studio Code, Anda bisa gunakan Terminal/Command Prompt usungan OS Anda, namun Anda perlu menyesuaikan lokasinya pada folder proyek.
Setelah menuliskan perintah di atas, kita akan diberikan beberapa pertanyaan untuk mengisi nilai package name, version, description. Semua itu merupakan informasi dasar dari aplikasi yang kita buat.

Nilai yang berada di dalam tanda kurung merupakan nilai default. Jika nilai default tersebut sudah cocok dengan yang kita harapkan, kita dapat menggunakan nilainya dengan langsung menekan tombol enter.
Setelah mengisi seluruh pertanyaan yang diberikan, kita akan diberitahu untuk melihat hasil akhir yang dibuat pada berkas package.json.

Jika nilai yang ditampilkan sudah sesuai, kita bisa langsung menekan tombol enter. Kemudian berkas package.json berhasil dibuat pada proyek kita.

Langkah dari materi ini bisa Anda temukan juga pada repository berikut:
Package.json
Berkas package.json merupakan berkas terpenting yang ada pada proyek node application. Berkas ini merupakan manifest yang menampung seluruh informasi dari aplikasi yang kita buat. Seperti nama, deskripsi, versi, author, remote repository, dan lainnya. Namun hal yang paling penting adalah informasi yang menampung daftar dependencies modules yang digunakan pada aplikasi kita.
Pada dependencies modules kita dapat melihat modules apa saja yang digunakan dalam pengembangan aplikasi, Contohnya jika kita memasang module/library jQuery, maka kita dapat melihat JQuery beserta versi yang digunakan terdaftar pada objek dependencies di dalam berkas package.json. Untuk memasang package yang tersedia pada npm kita gunakan perintah install kemudian nama package-nya.
Mari kita coba pasang jQuery pada proyek ClockWeb. Jalankan kode berikut pada terminal:
- npm install jquery
Ketika menjalankan kode tersebut kita bisa lihat proses pemasangan package yang ditampilkan pada terminal. Jika package jQuery berhasil dipasang, maka akan tampak seperti ini:

Kita pun bisa melihat perubahan yang terjadi pada package.json. Di sana terdapat objek dependencies yang menampung jQuery beserta versi yang digunakan.
- "dependencies": {
- "jquery": "^3.4.1"
- }
Ketika kita memasang package lainnya, Contohnya, Moment.js.
- npm install moment
Maka package tersebut akan masuk ke dalam objek dependencies juga.
- "dependencies": {
- "jquery": "^3.4.1",
- "moment": "^2.24.0"
- }
Selain perubahan pada berkas package.json, kita juga dapat melihat ada folder baru bernama “node_modules” yang terbuat secara otomatis ketika berhasil memasang package. Di dalam folder tersebut, kita terdapat folder proyek dari package yang kita pasang.

Sebenarnya terdapat dua tipe objek package dependencies dalam berkas package.json. Yang pertama objek dependencies, dan yang kedua objek devDepedencies. Apa perbedaannya?
Objek dependencies merupakan objek yang menampung package yang kita gunakan untuk membuat aplikasi. Biasanya package yang didaftarkan pada dependencies merupakan sebuah framework seperti React, Angular, Vue, jQuery atau framework lainnya. Untuk memasang package pada dependencies kita cukup gunakan perintah
- npm install <package-name>
seperti yang sudah kita lakukan sebelumnya.
Sedangkan objek devDependecies digunakan untuk package mendaftarkan package yang digunakan hanya selama pengembangan saja. Contohnya package yang berfungsi sebagai web server lokal seperti http-server, atau package yang berfungsi untuk membundel JavaScript seperti webpack. Untuk memasang package sebagai devDependencies kita gunakan perintah
- npm install <package-name> --save-dev
Jadi jika kita ingin memasang package http-server sebagai devDependencies, kita bisa menuliskan perintah berikut:
- npm install http-server --save-dev
Maka package http-server akan berada pada objek devDependencies.
- "dependencies": {
- "jquery": "^3.4.1",
- "moment": "^2.24.0"
- },
- "devDependencies": {
- "http-server": "^0.12.1"
- }
Langkah dari materi ini bisa Anda temukan juga pada repository berikut:
Using an Installed Package in Browser
Yes! Kita sudah belajar bagaimana cara memasang package pada dependencies dan devDependencies. Lalu bagaimana cara menggunakan package tersebut? Perlu kita ketahui bahwa sejatinya package yang dipasang melalui NPM diperuntukkan untuk node application yang berjalan diluar browser. Pada node application, kita dapat menggunakan package yang terpasang dengan mengimpornya seperti ini:
- const moment = require("moment");
Namun kode tersebut hanya akan bekerja pada environment Node.js, bukan pada browser. Untuk melakukan impor node package pada browser, kita perlu tools tambahan seperti webpack (kita akan mempelajarinya pada modul selanjutnya).
Tapi jangan dulu khawatir, melakukan impor menggunakan cara lama dengan tag . Kita dapat buat berkas index.html dengan struktur dasar HTMLnya dan melakukan impor script JQuery dan moment dengan menggunakan tag .
- Clock Web
- <script src="node_modules/moment/moment.js">
- <script src="node_modules/jquery/dist/jquery.min.js">
Dengan begitu kita dapat menggunakan JQuery dan moment pada browser. Mari kita coba dengan membuat berkas JavaScript baru dengan nama “index.js” kemudian tuliskan kode berikut:
- const displayTime = () => {
- moment.locale(“id”);
- $(“.time”).text(moment().format(“LTS”));
- $(“.date”).text(moment().format(“LL”));
- };
- const updateTime = () => {
- displayTime();
- setTimeout(updateTime, 1000)
- };
- updateTime();
Kemudian di awal element berkas index.html, kita tambahkan elemen yang akan digunakan dalam menampilkan jam dan tanggal. Lalu kita di akhir element jangan lupa lakukan impor berkas index.js yang sudah kita buat tadi.
- Clock Web
- <div class="clock">
- <span class="time">
- <span class="date">










