npm (software)

npm

Npm-logo.svg
Dati di base

sviluppatore Isaac Z. Schlueter / npm, Inc.
Anno di pubblicazione 12 gennaio 2010
Versione attuale  7.18.1
( 17 giugno 2021 )
sistema operativo Piattaforma indipendente
linguaggio di programmazione JavaScript
categoria Gestione dei pacchetti
Licenza Licenza Artistica 2.0
di lingua tedesca no
www.npmjs.com

npm (precedentemente NPM ) è un gestore di pacchetti per l' ambiente di runtime JavaScript Node.js . npm è stato programmato da Isaac Schlueter nel 2010 come dipendente del fornitore di piattaforme cloud californiano Joyent . Nel 2014 ha fondato "npm, inc."

Sotto il nome di registro npm o open source npm uno è il repository gestito con circa 350.000 pacchetti (al 13 gennaio 2017) vengono fornite licenze gratuite . Una versione commerciale è offerta per i pacchetti privati ​​(cioè non open source ).

Dietro lo sviluppo e il funzionamento del repository c'è la società npm, Inc. , con sede a Oakland , in California, che appartiene a GitHub dal 2020 e fa quindi parte del gruppo Microsoft .

sicurezza

Come qualsiasi repository, il registro npm è suscettibile di pacchetti contenenti codice dannoso . Non appena tali pacchetti vengono utilizzati in un progetto software tramite dipendenze , è possibile eseguire un'ampia varietà di attacchi. In passato sono diventati noti attacchi tramite typosquatting e ingegneria sociale . Nel 2021, un ricercatore di sicurezza ha presentato un altro vettore di attacco pubblicando pacchetti dannosi su npm.com, scegliendo il nome del pacchetto in modo che corrisponda al nome del pacchetto utilizzato internamente dalle società di software. In caso di errata configurazione, il pacchetto difettoso è stato successivamente scaricato e il suo codice è stato eseguito.

I problemi

A causa di un disaccordo riguardo al nome di un pacchetto e alla reazione del registro npm ad esso, uno sviluppatore ha eliminato tutti i suoi pacchetti dal repository nel marzo 2016, tra le altre cose left-pad. Di conseguenza, un gran numero di pacchetti come Babel (un compilatore JSX -after-JavaScript) e React non potevano più essere compilati perché richiedono il pacchetto. Ciò ha acceso un dibattito sull'uso di molti micro-moduli nella comunità JavaScript e sulla dipendenza da un repository commerciale. Inoltre, sono state prese misure nel repository per evitare tali problemi in futuro: le versioni pubblicate dei pacchetti possono essere ritirate solo entro 24 ore in modo indipendente o contattando il supporto.

Nel gennaio 2018 un utente è stato accidentalmente bloccato e con esso il download dei suoi 102 pacchetti. Per questo motivo, non è stato possibile installare/creare un gran numero di progetti JavaScript noti.

Cognome

Image
npm-espansioni su npmjs.com

Il nome Node Package Manager torna al file Leggimi del progetto. Nel dicembre 2014, tuttavia, il nome è stato rimosso. Nella pagina delle FAQ del progetto, tra agosto 2011 e novembre 2015, npm è stato definito come il backronym ricorsivo di “npm is not an acronimo”. Da settembre 2014, le possibili spiegazioni basate sulla comunità per npm sono state raccolte nel progetto GitHub e visualizzate sul sito web.npm-expansions

Guarda anche

  • Bower - Gestore pacchetti per pacchetti JavaScript lato client

Evidenze individuali

  1. A proposito di
  2. Prime versioni di npm . In: GitHub . Estratto il 5 gennaio 2019.
  3. Versione 7.18.1 . 17 giugno 2021 (consultato il 21 giugno 2021).
  4. increment.com: Glenn Fleischmann: Intervista con Isaac Z. Schlueter, CEO di npm
  5. ^ Stato dell'Unione: npm. In: Linux.com | La fonte per le informazioni su Linux. Estratto il 16 gennaio 2017 .
  6. NPM open source. (Non più disponibile online.) In: npmjs.com. Archiviato dall'originale il 25 marzo 2016 ; accesso il 24 marzo 2016 . Info: Il collegamento all'archivio è stato inserito automaticamente e non è stato ancora verificato. Si prega di controllare il collegamento originale e archivio secondo le istruzioni e quindi rimuovere questo avviso. @1@ 2Modello: Webachiv/IABot/www.npmjs.com
  7. npm pacchetti privati. In: npmjs.com. Estratto il 24 marzo 2016 .
  8. Circa npm. In: npmjs.com. Estratto il 24 marzo 2016 .
  9. npm si unisce a GitHub. In: github.blog. Consultato il 16 marzo 2020 . npm diventa parte di GitHub. In: microsoft.com. Estratto il 20 marzo 2020 .
  10. Malware `crossenv` sul registro npm. In: Il blog di npm. 2 agosto 2017, accesso 12 gennaio 2018 .
  11. ^ David Gilbertson: Sto raccogliendo numeri di carte di credito e password dal tuo sito. Ecco come. In: Hacker mezzogiorno . 6 gennaio 2018 (inglese, hackernoon.com [consultato il 12 gennaio 2018]).
  12. Il ricercatore di sicurezza entra nei repository open source di PayPal & Co. In: heise online. 10 febbraio 2021, accesso 11 febbraio 2021 .
  13. Pacchetto JavaScript rimosso da NPM: Node, Babel and Co. non è riuscito durante la compilazione. In: heise online. 23 marzo 2016. Estratto il 25 marzo 2016 .
  14. Azer Koçulu: ho appena liberato i miei moduli. In: Medio. 22 marzo 2016, accesso 25 marzo 2016 .
  15. ^ Mike Roberts: Una discussione sulla rottura di Internet. In: Medio. 23 marzo 2016, accesso 25 marzo 2016 .
  16. NPM e Left-Pad: abbiamo dimenticato come programmare? In: Notizie sugli hacker. Estratto il 25 marzo 2016 .
  17. kik, pad sinistro e npm. In: blog.npmjs.org. 23 marzo 2016, accesso 25 marzo 2016 .
  18. modifiche alla politica di annullamento della pubblicazione di npm. In: blog.npmjs.org. 29 marzo 2016, accesso 30 marzo 2016 .
  19. JavaScript: npm modifica la politica di annullamento della pubblicazione per i pacchetti. In: heise online. 30 marzo 2016, accesso 30 marzo 2016 .
  20. Rapporto sull'incidente: incidente relativo alle operazioni di npm, Inc. del 6 gennaio 2018. 11 gennaio 2018, consultato il 12 gennaio 2018 .
  21. calo iniziale. Brutto, approssimativo e non ancora del tutto un "work in progr…" · npm / npm @ 4626dfa. In: GitHub. 29 settembre 2009, accesso 7 aprile 2016 : "npm - The Node Package Manager"
  22. npm è un simpatico gestore di pacchetti JavaScript npm / npm @ cbb890e. In: GitHub. 12 dicembre 2014, consultato il 7 aprile 2016 .
  23. Domanda sulle maiuscole · npm / npm @ 9c0b248. In: GitHub. 6 agosto 2011, accesso il 7 aprile 2016 : "Contrariamente a quanto molti credono," npm "non è in effetti l'abbreviazione di "Node Package Manager". È un'abbreviazione bacronimica ricorsiva per "npm non è un acronimo". "
  24. doc: rimuovere FAQ npm / npm @ b88c37c. In: GitHub. 25 novembre 2015, accesso 7 aprile 2016 .
  25. espansioni npm / npm. In: GitHub. Estratto il 7 aprile 2016 : "Cosa significa npm?"