npm WARN package.json: pas de champ de référentiel


810

J'ai installé Express.js avec la commande suivante:

sudo npm install -g express

Je reçois les avertissements suivants:

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.

Je suis nouveau sur Node.js et Express.js. Pourquoi ai-je les avertissements ci-dessus? Devrais-je m'inquiéter?


19
En voyant cette question un an plus tard, je me rends compte que j'efface mentalement tous ces avertissements à chaque fois que j'installe des packages npm. C'est quelque chose que les développeurs de packages devraient peut-être faire un peu plus attention.
— nha

@nha ouais, je vois généralement ces avertissements lorsque je fais une opération npm et les corrige si c'est dans le package que je développe.
— gustavohenke

29
pour les dépôts privés, ajoutez simplement "private": trueà package.json
— chovy

Réponses:


1281

C'est juste une vérification à partir de NPM v1.2.20, ils signalent cela comme un avertissement.

Cependant, ne vous inquiétez pas, il y a tellement de paquets qui n'ont toujours pas de repositorychamp dans leur package.json. Le champ est utilisé à des fins d'information.

Dans le cas où vous êtes un auteur de package, mettez le repositorydans votre package.json, comme ceci:

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

En savoir plus sur le repositorychamp et voir le bogue enregistré pour plus de détails.


De plus, comme indiqué à l'origine par @dan_nl , vous pouvez définir la privateclé dans votre package.json.
Cela vous empêchera non seulement d'exécuter accidentellement npm publishdans votre application, mais empêchera également NPM d'imprimer des avertissements concernant les package.jsonproblèmes.

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

20
Quelques mois après ma réponse et je n'ai pas semblé avoir de problèmes jusqu'à présent :)
— gustavohenke

2
NPM 2.14 affiche désormais une erreur lorsqu'il repositoryest vide et privateest défini sur true.
— Blaise

9
@Blaise, je ne reçois aucun avertissement dans NPM 3.3.3 en utilisantprivate: true
— gustavohenke

3
Question, pourquoi n'est-ce pas "privé" par défaut, je veux dire combien de projets npm sont créés contre combien sont réellement publiés, y a-t-il vraiment plus de code de bibliothèque que de code utilisateur?
— Felype

1
Merci pour le privé: c'est vrai, en quelque sorte, j'ai manqué celui-ci toutes ces années.
— Jeremy Chone

394

vous pouvez également marquer l'application comme privée si vous ne prévoyez pas de la placer dans un référentiel réel.

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

51

Comme indiqué dan_nl, vous pouvez ajouter un faux dépôt privé dans package.json. Vous n'avez même pas besoin de nom et de version pour cela:

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

Mise à jour: cette fonctionnalité n'est pas documentée et peut ne pas fonctionner. Choisissez l'option suivante.

Mieux encore: réglez privatedirectement le drapeau. De cette façon, npm ne demande pas non plus de fichier README:

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

J'ai été informé d'un autre utilisateur de cette réponse. Il semble que le repository.privatecomportement ne soit pas documenté (ou qu'il ne soit plus accepté), selon docs.npmjs.com/files/package.json .
— gustavohenke

1
@gustavohenke: Merci, il semble que vous ayez raison - privatecar la propriété de premier niveau est de toute façon la meilleure option. Mis à jour ma réponse.
— wortwart

46

Si vous obtenez cela par vous-même package.json, ajoutez-y simplement le repositorychamp. (utilisez le lien vers votre référentiel réel):

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

Merci d'avoir clarifié l'utilisation du lien complet du fichier de projet github (y compris http://ou https://!
— twknab

9

As-tu couru npm init? Cette commande vous fait traverser tout ...


9

Dans Simple word- package.json de votre projet n'a pas de propriété de référentiel vous devez l'ajouter,

et vous devez ajouter un référentiel dans votre package.json comme ci-dessous

entrez la description de l'image ici

et laissez-moi vous expliquer selon votre scénario

vous devez ajouter un champ de référentiel comme ci-dessous

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

7

Pour éviter des avertissements tels que:

npm WARN project.com@1.0.0 No repository field.

Vous devez définir le référentiel dans votre projet package.json. Dans le cas où vous développez sans publication dans le référentiel, vous pouvez définir "private": truedans package.json

Exemple:

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

Documentation NPM à ce sujet: https://docs.npmjs.com/files/package.json


6

Si vous ne souhaitez pas spécifier de référentiel, vous pouvez ajouter les lignes suivantes au package.jsonfichier:

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

Cela a fonctionné pour moi.
En ajoutant private, vous n'avez pas besoin de créer un lien vers un référentiel.


4

cela vous aidera tous à trouver vos propres informations correctes

npm ls dist-tag

cela montrera alors les informations correctes afin que vous ne deviniez pas l'emplacement du fichier de version, etc.

prendre plaisir :)


1
J'ai reçu une réponse comme '--empty
— MJ

3

Oui, vous pouvez probablement en recréer un en l'incluant -fà la fin de votre commande


1

utilisez npm install -g angular-cli au lieu de
npm install -g @ nagular / cli pour installer Angular

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.