npm WARN package.json: sin campo de repositorio


810

Instalé Express.js con el siguiente comando:

sudo npm install -g express

Recibo las siguientes advertencias:

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.

Soy nuevo en Node.js y Express.js. ¿Por qué tengo las advertencias anteriores? ¿Deberia estar preocupado?


19
Al ver esta pregunta un año después, me doy cuenta de que borro mentalmente todas estas advertencias cada vez que instalo paquetes npm. Esto es algo sobre lo que los desarrolladores de paquetes deberían ser más cuidadosos.
nha

@nha sí, generalmente veo esas advertencias cuando realizo alguna operación npm y las arreglo si está en el paquete que estoy desarrollando.
gustavohenke

29
para repositorios privados, simplemente agregue "private": truea package.json
chovy

Respuestas:


1281

Es solo una verificación a partir de NPM v1.2.20, informan esto como una advertencia.

Sin embargo, no se preocupe, hay muuuuuuuuuuy muchos paquetes que todavía no tienen el repositorycampo en su package.json. El campo se utiliza con fines informativos.

En el caso de que seas un autor del paquete, poner el repositoryen su package.json, de esta manera:

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

Lea más sobre el repositorycampo y vea el error registrado para obtener más detalles.


Además, como informó originalmente @dan_nl , puede establecer la privateclave en su package.json.
Esto no solo evitará que se ejecute accidentalmente npm publishen su aplicación, sino que también evitará que NPM imprima advertencias sobre package.jsonproblemas.

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

20
Unos meses después de mi respuesta y hasta ahora no he tenido ningún problema :)
gustavohenke

2
NPM 2.14 ahora imprime un error cuando repositoryestá vacío y privatese establece en verdadero.
Blaise

99
@Blaise, no recibo ninguna advertencia en NPM 3.3.3 usandoprivate: true
gustavohenke el

3
Pregunta, ¿por qué no es "privado" el valor predeterminado? Quiero decir, cuántos proyectos npm se crean versus cuántos se publican realmente, ¿hay realmente más código de biblioteca que código de usuario?
Felype

1
Gracias por lo privado: cierto, de alguna manera, me perdí este todos estos años.
Jeremy Chone

394

También puede marcar la aplicación como privada si no planea ponerla en un repositorio real.

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

51

Como dijo dan_nl, puede agregar un repositorio falso privado en package.json. Ni siquiera necesita nombre y versión para ello:

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

Actualización: esta característica no está documentada y podría no funcionar. Elige la siguiente opción.

Mejor aún: configure la privatebandera directamente. De esta manera, npm tampoco solicita un archivo README:

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

Recibí una notificación sobre otro usuario sobre esta respuesta. Parece que repository.privateno es un comportamiento documentado (o ya no se acepta), de acuerdo con docs.npmjs.com/files/package.json .
gustavohenke

1
@gustavohenke: Gracias, parece que tienes razón, privateya que la propiedad de nivel superior es la mejor opción de todos modos. Actualicé mi respuesta.
wortwart

46

Si obtiene esto por su cuenta package.json, simplemente agregue el repositorycampo. (use el enlace a su repositorio real):

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

Gracias por aclarar el uso del enlace completo del archivo del proyecto github (incluido http://o https://!
twknab

9

¿Has corrido npm init? Ese comando te guía a través de todo ...


9

En palabras simples package.json de su proyecto no tiene propiedad de repositorio, debe tener que agregarlo,

y tienes que agregar repositorio en tu package.json como a continuación

ingrese la descripción de la imagen aquí

y déjame explicarte de acuerdo a tu escenario

debe agregar un campo de repositorio como el siguiente

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

7

Para evitar advertencias como:

npm WARN project.com@1.0.0 No repository field.

Debe definir el repositorio en su proyecto package.json. En el caso de que esté desarrollando sin publicación en el repositorio, puede configurarlo "private": trueen package.json

Ejemplo:

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

Documentación de NPM sobre esto: https://docs.npmjs.com/files/package.json


6

Si no desea especificar un repositorio, puede agregar las siguientes líneas al package.jsonarchivo:

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

Eso funcionó para mí.
Al agregar private, no necesita vincular a un repositorio.


4

esto les ayudará a todos a encontrar sus propios detalles correctos.

npm ls dist-tag

Esto mostrará la información correcta para que no adivine la ubicación del archivo de versión, etc.

disfruta :)


1
Recibí una respuesta como '--empty
MJ

3

Sí, probablemente pueda volver a crear uno al incluirlo -fal final de su comando


1

use npm install -g angular-cli en lugar de
npm install -g @ nagular / cli para instalar Angular

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.