pacote de aviso do MPN.json: sem repositório
instalei o Express.js com o seguinte comando:
sudo npm install -g express
recebo os seguintes avisos:
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No readme data.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No repository field.
Sou novo nodo.js e Express.js. Por que tenho os avisos acima? Devo preocupar-me?
10 answers
É só uma verificação a partir de NPM v1. 2. 20, eles relatam isto como um aviso.
No entanto, não se preocupe, há muitos pacotes que ainda não têm o camporepository
no seu package.json
. O campo é utilizado para fins informativos.
No caso de seres um autor de pacotes, põe o repository
no teu package.json
, assim:
"repository": {
"type": "git",
"url": "git://github.com/username/repository.git"
}
Leia mais sobre o repository
campo, e veja o erro logado para mais informações informacao.
adicionalmente, como foi originalmente relatado por @dan_nl , Você pode definir private
a chave na sua package.json
.
Isto não só o impedirá de executar acidentalmente npm publish
na sua aplicação, como também impedirá o MPN de imprimir avisos relativos a problemas package.json
.
{
"name": "my-super-amazing-app",
"version": "1.0.0",
"private": true
}
Você também pode marcar a aplicação como privada se você não planeja colocá-la em um repositório real.
{
"name": "my-application",
"version": "0.0.1",
"private": true
}
Como o dan_ nl indicou, poderá adicionar um repositório falso privado no Pacote.json. Você nem precisa de nome e versão para ele:
{
...,
"repository": {
"private": true
}
}
actualização: esta funcionalidade não está documentada e pode não funcionar. Escolha a seguinte opção.
Melhor ainda: definir a bandeiraprivate
directamente. Desta forma, o npm também não pede um ficheiro README:
{
"name": ...,
"description": ...,
"version": ...,
"private": true
}
Se está a receber isto do seu próprio package.json
, Basta adicionar o campo repository
a ele. (use a ligação para o seu repositório actual):
"repository" : {
"type" : "git",
"url" : "https://github.com/npm/npm.git"
}
Em palavras simples - pacote.json do seu projecto não tem propriedade do repositório você deve ter que adicioná-lo,
E você tem que adicionar repositório no seu pacote.json como abaixo
E deixa-me explicar de acordo com o teu cenário.Você deve ter que adicionar um campo de repositório algo como abaixo
"repository" : {
"type" : "git",
"url" : "http://github.com/npm/express.git"
}
Se não quiser indicar um repositório, poderá adicionar as seguintes linhas ao ficheiro package.json
:
"description":"",
"version":"0.0.1",
"private":true,
Isso funcionou comigo.Ao adicionar
private
, não precisa de se ligar a um acordo de recompra.
Isto irá ajudar-vos a encontrar os vossos próprios detalhes correctos, usem
npm ls dist-tag
Isto irá então mostrar a informação correcta para que não adivinhe a localização do ficheiro de Versão etc
Aprecie:)
Sim, provavelmente você pode re / criar um incluindo -f
no final do seu comando
Para evitar avisos como:
npm WARN [email protected] No repository field.
Tem de definir o repositório no seu pacote de projecto.json.
No caso em que você está desenvolvendo sem publicação no repositório, você pode definir "private": true
em pacote.json
Exemplo:
{
"name": "test.loc",
"version": "1.0.0",
"private": true,
...
"license": "ISC"
}
Documentação do MPN sobre isto: https://docs.npmjs.com/files/package.json