From Wikipedia, the free encyclopedia
npm (енгл. ) је менаџер пакета за ЈаваСкрипт програмски језик. Он је такође подразумевани менаџер пакета за ЈаваСкрипт радно окружење Node.js. Састоји се од конзоле, која се још назива npm и онлајн базе података јавних и плаћених приватних пакета, који се називају npm регистри. Овим регистрима се приступа преко клијентске конзоле, док се доступни пакети могу претраживати на npm вебсајту. Менаџером пакета и регистрима управља компанија npm (енгл. )
Оригинални аутор(и) | Ајзек Шлутер |
---|---|
Програмер(и) | Ребека Тарнер, Кет Марчан и други |
Прво издање | 12. јануар 2010.[1] |
Стабилно издање | 5.4.0
/ 23. август 2017.[2] |
Репозиторијум | |
Написан у | ЈаваСкрипт |
Лиценца | Уметничка лиценца 2.0 |
Веб-сајт |
npm је у потпуности написан у ЈаваСкрипту и развио га је Ајзек Шлутер због тога што је сматрао да се модулирање пакета до тад "грозно" обављало и проналазећи недостатке у сличним пројектима као што су PEAR (PHP) и CPAN (Перл).
npm је садржан и препоручен у Node.js инсталационом програму.[3] npm се састоји од клијентске конзоле која се користи за интеракцију са удаљеним регистрима. Конзола омогућава корисницима коришћење и дистрибуцију ЈаваСкрипт модула који су доступни у регистру.[4] Пакети су у регистру у CommonJS формату и садрже датотеку са метаподацима у JSON формату.[5] Преко 477.000 пакета је тренутно доступно у главном npm регистру.[6] Регистар не поседује механизам за проверу уноса, што значи да доступни пакети могу бити лошег квалитета, несигурни и малициозни.[5] Уместо тога, npm се ослања на пријаве корисника на основу којих уклањају пакете који крше политику регистра тиме што су несигурни, малициозни или слабог квалитета.[7] npm нуди статистику која садржи број преузимања као и број зависних пакета како би помогао програмерима да оцене квалитет пакета.[8]
У марту 2016. године, npm је дошао у жижу медијске пажње[9] након што је пакет под називом left-pad, од кога је зависио велики број популарних ЈаваСкрипт пакета, повучен из регистра као резултат расправе.[10] Иако је пакет поново објављен након 3 сата[11] учињена је велика штета, што је довело до тога да npm промени своју политику која се тиче повлачења пакета како би предупредио сличне догађаје у будућности.[12]
npm може да управља пакетима који су локалне зависности на одређеном пројекту, као и глобално инсталираних ЈаваСкрипт алата.[13] Када се користи као менаџер зависности на локалном пројекту, npm може да инсталира, помоћу само једне команде, све зависности пројекта помоћу package.json
фајла.[14] У овом фајлу свака зависност може да специфицира низ валидних верзија користећи семантички верзионисану шему, која омогућава програмерима да аутоматски ажурирају своје пакете а да притом избегну непожељне промене које доводе пуцања кода.[15] npm такође нуди алате за верзионисање који омогућавају програмерима да означе своје пакете одређеном ознаком верзије.[16]
Постоји неколико алтернатива npm-у отвореног кода за инсталирање модуларног ЈаваСкрипт кода, као што су ied, pnpm, npm-install, npmd, и Yarn, од којих овај последњи развијен од стране Фејсбука и представљен у октобру 2016. године.[17] Сви су они компатибилни са јавним npm регистром кога подразумевано користе, али корисницима нуде другачије искуство са клијентском конзолом, које се обично огледа у побољшању перформанси и детерминистичким алгоритмима у односу на друге npm клијенте.[18]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.