npm WARN package.json: nenhum campo de repositório


810

Instalei o Express.js com o seguinte comando:

sudo npm install -g express

Recebo os seguintes avisos:

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.

Eu sou novo no Node.js e no Express.js. Por que tenho os avisos acima? Eu deveria estar preocupado?


19
Ao ver essa pergunta um ano depois, percebo que apago mentalmente todos esses avisos toda vez que instalo os pacotes npm. Isso é algo que os desenvolvedores de pacotes devem ter um pouco mais de cuidado.
nha

@ nha sim, eu costumo ver esses avisos ao fazer alguma operação npm e corrigi-los se estiver no pacote que estou desenvolvendo.
gustavohenke

29
para repos privadas, basta adicionar "private": truea package.json
Chovy

Respostas:


1280

É apenas uma verificação no NPM v1.2.20, eles relatam isso como um aviso.

No entanto, não se preocupe, existem muuuuito muitos pacotes que ainda não têm o repositorycampo em suaspackage.json . O campo é usado para fins informativos.

No caso de você ser o autor do pacote, insira o repositoryseu package.json, assim:

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

Leia mais sobre o repositorycampo e veja o bug registrado para mais detalhes.


Além disso, conforme relatado originalmente por @dan_nl , você pode definir sua privatechave package.json.
Isso não apenas impedirá que você execute acidentalmente npm publishseu aplicativo, mas também impedirá que o NPM imprima avisos sobre package.jsonproblemas.

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

20
Poucos meses depois da minha resposta e eu não parecem problemas até agora :)
gustavohenke

2
O NPM 2.14 agora imprime um erro quando repositoryestá vazio e privateestá definido como verdadeiro.
Blaise

9
@Blaise, eu não receber quaisquer avisos em NPM 3.3.3 usandoprivate: true
gustavohenke

3
Pergunta: por que não é "privado" o padrão? Quero dizer, quantos projetos npm são criados versus quantos são realmente publicados. Existe realmente mais código de biblioteca que código de usuário?
Felype 30/10/19

1
Obrigado pelo privado: é verdade, de alguma forma, eu perdi esse aqui todos esses anos.
Jeremy Chone

394

você também pode marcar o aplicativo como privado se não planeja colocá-lo em um repositório real.

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

51

Como dan_nl afirmou, você pode adicionar um repositório falso privado no package.json. Você nem precisa de nome e versão:

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

Atualização: esse recurso não está documentado e pode não funcionar. Escolha a seguinte opção.

Melhor ainda: defina a privatebandeira diretamente. Dessa forma, o npm não solicita um arquivo README:

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

Foi notificado sobre outro usuário sobre esta resposta. Parece que repository.privatenão há comportamento documentado (ou não é mais aceito), de acordo com docs.npmjs.com/files/package.json .
Gustavohenke #

1
@gustavohenke: Obrigado, parece que você está certo - privatejá que a propriedade de nível superior é a melhor opção. Atualizei minha resposta.
Wortwart # /

46

Se você está obtendo isso por conta própria package.json, basta adicionar o repositorycampo a ele. (use o link para seu repositório real):

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

Obrigado por esclarecer o uso do link completo do arquivo do projeto github (incluindo http://or https://!
twknab

9

Você correu npm init? Esse comando leva você a tudo ...


9

Em palavras simples package.json do seu projeto não tem propriedade do repositório, você deve adicioná-lo,

e você tem que adicionar repositório no seu package.json como abaixo

insira a descrição da imagem aqui

e deixe-me explicar de acordo com o seu cenário

você deve adicionar o campo do repositório, algo como abaixo

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

7

Para evitar avisos como:

npm WARN project.com@1.0.0 No repository field.

Você deve definir o repositório no seu projeto package.json. No caso de você estar desenvolvendo sem publicação no repositório, é possível configurar "private": trueno package.json

Exemplo:

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

Documentação do NPM sobre isso: https://docs.npmjs.com/files/package.json


6

Se você não deseja especificar um repositório, pode adicionar as seguintes linhas ao package.jsonarquivo:

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

Isso funcionou para mim.
Ao adicionar private, você não precisa vincular a um repo.


4

isso ajudará todos a encontrar seus próprios detalhes corretos

npm ls dist-tag

isso mostrará as informações corretas para que você não adivinhe o local do arquivo de versão, etc.

aproveitar :)


1
Eu recebi uma resposta como '--empty
MJ

3

Sim, provavelmente você pode recriar um incluindo -fno final do seu comando


1

use npm install -g angular-cli em vez de
npm install -g @ nagular / cli para instalar o Angular

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.