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?

JR Galia
fonte
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
}
gustavohenke
fonte
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
}
dan_nl
fonte
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
}
infeliz
fonte
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"
 }
Brendan Nee
fonte
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 ...

achoukah
fonte
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" 
   }
Shashwat Gupta
fonte
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

Alex
fonte
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.

Rubin bhandari
fonte
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 :)

Ian Croasdell
fonte
1
Eu recebi uma resposta como '--empty
MJ
3

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

Jsalim
fonte
1

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

Alnebras Murtada
fonte