Tips NPM dan versioning package.json
- Categories:
- javascript
Bila menggunakan package NPM seringkali menggunakan package.json. Saya memiliki beberapa pengalaman kurang menyenangkan terkait dengan package.json dan NPM. Dari pengalaman tersebut saya jadi memiliki aturan khusus terkait package.json, yaitu tidak menggunakan range version.
Package NPM yang kita install biasanya memiliki range version di package.json, misal ~1.2.3
yang berarti NPM akan install package dengan versi >= 1.2.3
dan < 1.3.0
. Range version lainnya biasanya tertulis ^1.2.3
yang artinya NPM akan install antara versi >=1.2.3
dan < 2.0.0
Masalahnya dengan adanya range version, saat melakukan git clone
dan npm install
package yang terinstall malah menyebabkan aplikasi gagal berjalan karena package yang telah ter-update saat menjalankan npm install
tidak cocok dengan package lainnya yang tidak ter-update.
Oleh sebab itulah saya selalu menghilangkan ~
atau ^
dan menggunakan fixed version seperti "webpack": "3.10.0"
. Dengan menggunakan perintah npm outdated
saya bisa mendapakan package NPM mana yang perlu di-update serta versi terbarunya.
Untuk solusi masalah versioning ini, NPM sendiri menyediakan package-lock.json yang otomatis dibuat saat menjalankan npm install
, namun sepertinya masih memiliki issue dimana file package-lock.json tidak konsisten.
Solusi lain bisa menggunakan Yarn sebagai pengganti NPM dimana saat menjalankan yarn install
otomatis akan membuat file yarn.lock. Sejauh ini saya belum mendapatkan masalah dengan Yarn.
- Tags:
- #javascript
- #npm
Recent Posts
How to Defend Against Brute-Force and DoS Attacks with Fail2ban, Nginx limit_req, and iptables
In this tutorial, I’ll explain how to protect your public-facing Linux server and Nginx web server from common threats, including brute-force and DoS attacks.
Is Getting AWS Solutions Architect Associate Certification Worth It?
If you are a full-time Software Engineer, there's no strong need to pursue this certification.
DevSecOps
My Notes about DevSecOps
AWS Secrets Manager
Explanation about AWS Secrets Manager with example code.
Envelope Encryption
Envelope encryption is the practice of encrypting plaintext data with a data key, and then encrypting the data key under another key.