Node JavaScript
14 May 2023 • 4 minKetika belajar NodeJS mungkin kita akan menemukan file package.json
. Terdapat informasi mengenai Project Node kita dalam file tersebut. Ayo kita pelajari.
Setiap Node Project pasti terdapat file yang ditulis dengan JSON(JavaScript Object Notation) untuk menyimpan informasi Node Package. package.json
menyimpan basic information seperti name, version, hingga metadata. NPM membutuhkan package.json
untuk mengelola package.
Manifest berisi informasi mengenai mengenai yang ditulis kedalam Object, diantaranya yang sering digunakan:
Untuk selengkapnya bisa kita kunjungi Docs.
Kita perlu menginisiasi dengan npm, perintahnya $ npm init
. Jika menjalankan tersebut biasanya kita akan mendapat pertanyaan.
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
package name: (test)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /home/lucuria/Documents/dev/test/package.json:
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Is this OK? (yes)
Jika malas mengisi kita bisa menggunakan default value, hanya tekan enter saja setiap pertanyaan. Namun lebih mudahnya kita bisa menambahkan flag -y
di perintah npm dan kita akan mendapatkan hasil yang sama.
$ npm init -y
wrote to package.json:
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Setiap kali membuat program biasanya kita membutuhkan third-party library. Didalam Node JS, tersimpan pada NPM Registry.
Untuk menginstall package atau dependency cukup mudah, hanya dengan mengetikkan npm install
. Selesai menjalankannya akan muncul folder node_module.
Install package:
$ npm install react
Secara default npm akan menginstall stable release yang terbaru di Registry. Sekarang jika dilihat file package.json, akan muncul dependency:
"dependencies": {
"react": "^18.2.0"
},
Jika ingin meng-install banyak package sekaligus hanya perlu menambahkan package lagi di belakangnya dan jika ingin spesifik versi yang kita mau langsung saja ditulis versinya.
$ npm install react@18.0.1
Ada variasi lain yang bisa digunakan, yaitu dengan menuliskan langsung dependency yang diperlukan di package.json.
{
"name": "personal-site",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@next/font": "^13.2.4",
"@tailwindcss/typography": "^0.5.8",
"@types/node": "18.11.17",
"@types/react": "18.0.26",
"@types/react-dom": "18.0.9",
"eslint-config-next": "^13.2.4",
"gray-matter": "^4.0.3",
"next": "^13.2.4",
"next-mdx-remote": "^4.2.0",
"next-themes": "^0.2.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"rehype-prism-plus": "^1.5.0",
"remark-gfm": "^3.0.1",
"remark-mdx-code-meta": "^2.0.0",
"typescript": "4.9.4"
}
}
kemudian tinggal menjalankan perintah install, lalu npm akan meng-install semua yang tertulis di dependencies.
$ npm install
Versi didalam NodeJS terintegrasi dengan Semver. Kita bisa dengan spesifik menuliskan apa yang kita mau kedalam dependencies package.json. Jika bingung kita bisa gunakan kalkulator Semver NPM.
Mungkin kita bekerja pada legacy project dan banyak sekali dependency yang harus di-update. Kita bisa dengan sederhana mengetikkan sebuah perintah yang secara otomatis menampilkan versi mengenai dependency.
$ npm outdated
Untuk meng-update semua dependency sesuai Wanted version bisa dengan perintah:
$ npm update
Atau ingin hanya beberapa dependency:
$ npm update next
Sudah biasa bagi kita untuk berpindah-pindah versi dengan alasan tertentu. Melakukannya di NPM cukup mudah yaitu meng-install dengan versi yang diinginkan. Seperti contoh kita ingin downgrade package:
$ npm install next@^12.0.0
Jika sebelumnya di package.json kita terdapat next dengan latest version akan otomatis replace dengan versi yang kita inginkan
Terimakasih sudah membaca! ~ Ann