npm WARN package.json: nessun campo repository


810

Ho installato Express.js con il seguente comando:

sudo npm install -g express

Ricevo i seguenti avvisi:

npm WARN package.json range-parser@0.0.4 No repository field.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json methods@0.0.1 No readme data.
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json pause@0.0.1 No repository field.
npm WARN package.json bytes@0.2.0 No repository field.
npm WARN package.json github-url-from-git@1.1.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.

Sono nuovo di Node.js ed Express.js. Perché ho gli avvisi di cui sopra? Dovrei essere preoccupato?


19
Vedendo questa domanda un anno dopo, mi rendo conto che cancello mentalmente tutti questi avvisi ogni volta che installo pacchetti npm. Questo è qualcosa di cui gli sviluppatori di pacchetti dovrebbero forse fare un po 'più attenzione.
nha,

@nh sì, di solito vedo quegli avvertimenti quando faccio qualche operazione di npm e li aggiusto se è nel pacchetto che sto sviluppando.
Gustavohenke,

29
per i repository privati, basta aggiungere "private": truea package.json
chovy

Risposte:


1281

È solo un controllo a partire da NPM v1.2.20, lo segnalano come un avvertimento.

Tuttavia, non ti preoccupare, ci sono sooooooo molti pacchetti che ancora non hanno il repositorycampo in loro package.json. Il campo viene utilizzato a scopo informativo.

Nel caso in cui sei un autore di pacchetti, inserisci il repositorytuo package.json, in questo modo:

"repository": {
  "type": "git",
  "url": "git://github.com/username/repository.git"
}

Ulteriori informazioni sul repositorycampo e vedere il bug registrato per ulteriori dettagli.


Inoltre, come riportato in origine da @dan_nl , puoi impostare la privatechiave nel tuo package.json.
Ciò non solo impedirà l'esecuzione accidentale npm publishnella tua app, ma impedirà anche a NPM di stampare avvisi relativi ai package.jsonproblemi.

{
  "name": "my-super-amazing-app",
  "version": "1.0.0",
  "private": true
}

20
Pochi mesi dopo la mia risposta e finora non ho riscontrato alcun problema :)
gustavohenke,

2
NPM 2.14 ora stampa un errore quando repositoryè vuoto ed privateè impostato su true.
Blaise,

9
@ Blaise, non ricevo alcun avviso in NPM 3.3.3 utilizzandoprivate: true
gustavohenke il

3
Domanda, perché non è "privato" il valore predefinito, intendo quanti progetti npm vengono creati rispetto a quanti sono effettivamente pubblicati, esiste davvero più codice di libreria del codice utente?
Felype,

1
Grazie per il privato: vero, in qualche modo, mi è mancato questo in tutti questi anni.
Jeremy Chone,

394

puoi anche contrassegnare l'applicazione come privata se non prevedi di inserirla in un repository reale.

{
  "name": "my-application",
  "version": "0.0.1",
  "private": true
}

51

Come affermato dan_nl, è possibile aggiungere un repository falso privato in package.json. Non hai nemmeno bisogno di nome e versione per questo:

{
  ...,
  "repository": {
    "private": true
  }
}

Aggiornamento: questa funzione non è documentata e potrebbe non funzionare. Scegli la seguente opzione

Meglio ancora: privateimposta direttamente la bandiera. In questo modo npm non richiede neanche un file README:

{
  "name": ...,
  "description": ...,
  "version": ...,
  "private": true
}

Sono stato informato su un altro utente di questa risposta. Sembra che repository.privatenon sia un comportamento documentato (o non è più accettato), secondo docs.npmjs.com/files/package.json .
gustavohenke,

1
@gustavohenke: Grazie, sembra che tu abbia ragione, privatedato che la proprietà di alto livello è comunque l'opzione migliore. Aggiornato la mia risposta.
Wortwart,

46

Se stai ottenendo questo dal tuo package.json, basta aggiungere il repositorycampo ad esso. (usa il link al tuo repository reale):

"repository" : { 
   "type" : "git",
   "url" : "https://github.com/npm/npm.git"
 }

Grazie per aver chiarito di utilizzare il collegamento completo al file di progetto github (incluso http://o https://!
twknab,

9

Hai corso npm init? Questo comando ti guida attraverso tutto ...


9

In Simple word- package.json del tuo progetto non ha proprietà del repository devi aggiungerlo,

e devi aggiungere un repository nel tuo package.json come di seguito

inserisci qui la descrizione dell'immagine

e lasciami spiegare in base al tuo scenario

devi aggiungere un campo repository simile a quello sotto

  "repository" : {     
     "type" : "git",
      "url" : "http://github.com/npm/express.git" 
   }

7

Per evitare avvisi come:

npm WARN project.com@1.0.0 No repository field.

È necessario definire il repository nel progetto package.json. Nel caso in cui si sviluppi senza pubblicazione nel repository, è possibile impostare "private": truein package.json

Esempio:

{
  "name": "test.loc",
  "version": "1.0.0",
  "private": true,
  ...
  "license": "ISC"
}

Documentazione NPM su questo: https://docs.npmjs.com/files/package.json


6

Se non si desidera specificare un repository, è possibile aggiungere le seguenti righe al package.jsonfile:

"description":"",
"version":"0.0.1",
"private":true,

Questo ha funzionato per me.
Aggiungendo private, non è necessario collegarsi a un repository.


4

questo aiuterà tutti voi a trovare il vostro uso corretto dei dettagli

npm ls dist-tag

questo mostrerà quindi le informazioni corrette in modo da non indovinare il percorso del file della versione ecc

godere :)


1
Ho ricevuto una risposta come '--empty
MJ

3

Sì, probabilmente puoi ri / crearne uno includendolo -falla fine del tuo comando


1

usa npm install -g angular-cli invece di
npm install -g @ nagular / cli per installare Angular

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.