<!-- {{italic title}} komentari karena menyebabkan peringatan judul ditimpa -->
{{lowercase title}}
{{Infobox software|title=npm|name=npm|logo=Npm-logo.svg|screenshot=<!-- [[File: ]] -->|author=Isaac Z. Schlueter|developer=Rebecca Turner, Kat Marchán, others|released={{Start date and age|2010|1|12}}<ref>{{cite web |url=https://github.com/npm/npm/releases?after=v0.1.1 |title=Earliest releases of npm |website=GitHub |accessdate=27 July 2016}}</ref>|latest release version=6.113.0|latest release date={{Start date and age|20182019|511|1706|df=yes}}<ref>{{cite web | url = https://github.com/npm/npmcli/releases/tag/v6.1.0 | title = Release v6.1.0 · npm/npm | date = 2018-05-17 | publisher = GitHub | archiveurl = https://web.archive.org/web/20180603184903/https://github.com/npm/npm/releases/tag/v6.1.0 | archivedate = 2018-06-03 | accessdate = 20182019-0611-0316}}</ref>|programming language=[[JavaScript]]|license=[[Artistic License 2.0]]|website={{URL|https://www.npmjs.com/}}}}
'''npm''' adalah sebuah [[managermanajer paket]] untuk bahasa pemrograman [[JavaScript]] yang menjadi managermanajer defaultbaku untuk lingkungan runtime [[Node.js]]. Npm terdiri dari ''commandklien linebaris client''perintah yang disebut '''npm''', dan sebuah databasepangkalan onlinedata daring yang berisi paket publik dan paket pribadi berbayar, yang disebut ''npm'' ''registry''. Registry dapat diakses melalui klien, dan ketersediaan paket dapat dicari melalui websitesitus web npm. ManagerManajer paket dan registry dikelola oleh npm, Inc.
== Sejarah ==
== Penggunaan ==
npm dapat mengelola ketergantungan paket dari suatu proyek, serta pemasangan program JavaScript secara global.<ref name="Ellingwood16">{{Cite web|url=https://www.digitalocean.com/community/tutorials/how-to-use-npm-to-manage-node-js-packages-on-a-linux-server|title=How To Use npm to Manage Node.js Packages on a Linux Server|last=Ellingwood|first=Justin|website=DigitalOcean|access-date=22 October 2016}}</ref>
Ketika digunakan sebagai managermanajer paket untuk proyek lokal, npm dapat menginstal semua paket ketergantungan dengan satu perintah melalui fileberkas package.json.<ref name="npm-install-docs">{{Cite web|url=https://docs.npmjs.com/cli/install|title=npm-install|website=docs.npmjs|access-date=22 October 2016}}</ref>
Pada fileberkas package.json, setiap paket dapat ditentukan versi yang akan dipasang dengan menggunakan skema semanticversi versioningsemantik. Hal ini memungkinkan pengembang untuk melakukan pemberharuanpemutakhiran paket otomatis dan juga menghindari benturan perubahan yang tidak diinginkan.<ref name="npm-semver-docs">{{Cite web|url=https://docs.npmjs.com/misc/semver|title=semver|website=docs.npmjs|access-date=22 October 2016}}</ref>
npm juga menyediakan alat version-bumpingpenaikkan versi untuk memilih paket dengan versi tertentu.<ref name="npm-version-dcs">{{Cite web|url=https://docs.npmjs.com/cli/version|title=npm-version|website=docs.npm|access-date=29 October 2016}}
</ref> Selain package.json, npm juga menyediakan fileberkas package-lock.json<ref>{{Cite web|url=https://www.codeproject.com/Articles/1202361/What-is-package-lock-json-file-in-Node-NPM|title=What is the need of package-lock.json in Node?|last=Koirala|first=Shivprasad|date=21 Aug 2017|website=codeproject}}</ref> yang bertugas mengunci versi paket yang terpasang pada proyek.
== Alternatif ==
Ada beberapa alternatif untuk npm yang digunakan menginstal modul JavaScript, diantaranya: ied, pnpm, npm-install, npmd, dan Yarn yang dirilis terakhir oleh [[Facebook]] pada bulan oktoberOktober 2016.<ref name="hello-yarn">{{Cite web|url=http://blog.npmjs.org/post/151660845210/hello-yarn|title=Hello, Yarn!|date=11 October 2016|website=The npm Blog|access-date=17 December 2016}}</ref> Mereka semua kompatibel dengan semua registri publik npm dan menggunakannya secara defaultbaku, tetapi menyediakanmenggunakan berbagaipengalaman klien-sisi pengalamanklien yang berbeda, biasanya terfokus pada peningkatan kinerja dan determinisme dibandingkan dengan npm klien.<ref name="yarn-why">{{Cite web|url=http://yehudakatz.com/2016/10/11/im-excited-to-work-on-yarn-the-new-js-package-manager-2/|title=Why I'm working on Yarn|last=Katz|first=Yehuda|date=11 October 2016|access-date=17 December 2016}}</ref>
== Lihat juga ==
* [[Repositori perangkat lunak]]
* [[Universal Package Manager]]
== Pranala luar ==
{{Commonscat|Node Package Manager}} ▼
* {{Resmi|https://www.npmjs.com/}}
▲{{Commonscat|Node Package Manager}}
[[Kategori:Perangkat lunak]]
|