npm WARN package.json: Havuz alanı yok


809

Express.js'yi aşağıdaki komutla yükledim:

sudo npm install -g express

Aşağıdaki uyarıları alıyorum:

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.

Node.js ve Express.js'de yeniyim. Neden yukarıdaki uyarılarım var? Endişelenmeli miyim?


19
Bu soruyu bir yıl sonra görerek, npm paketlerini her yüklediğimde tüm bu uyarıları zihinsel olarak sildiğimin farkındayım. Bu, paket geliştiricilerin biraz daha dikkatli olması gereken bir şeydir.
nha

@nha evet, genellikle bazı npm işlemi yaparken bu uyarıları görüyorum ve geliştirdiğim pakette varsa düzeltiyorum.
gustavohenke

29
özel "private": true
depolar

Yanıtlar:


1279

Sadece NPM v1.2.20 itibariyle bir kontrol, bunu bir uyarı olarak bildiriyorlar.

Ancak, merak etmeyin, sooooooo hala repositorykendi alanında olmayan birçok paket var package.json. Alan bilgi amaçlı kullanılır.

Eğer, bir paketi yazarı konum koymak repositoryGözlerinde farklı package.jsonbu gibi:

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

repositoryAlan hakkında daha fazla bilgi edinin ve daha fazla ayrıntı için kaydedilen hataya bakın.


Ayrıca, başlangıçta @dan_nl tarafından bildirilen , ayarlayabilirsiniz privateGözlerinde farklı anahtarı package.json.
Bu, yalnızca npm publishuygulamanızda yanlışlıkla çalışmanızı engellemez , aynı zamanda NPM'nin package.jsonsorunlarla ilgili uyarıları yazdırmasını da engeller .

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


2
NPM 2.14 artık repositoryboş olduğunda ve privatetrue olarak ayarlandığında bir hata yazdırıyor .
Blaise

9
@Blaise, NPM private: true
3.3.3'te

3
Soru, neden "özel" varsayılan değil, yani gerçekten yayınlanan kaç karşı npm projeleri oluşturulur, yani gerçekten kullanıcı kodu daha fazla kütüphane kodu var mı?
Felype

1
Özel için teşekkürler: doğru, bir şekilde, bunu tüm bu yıllar boyunca özledim.
Jeremy Chone

394

gerçek bir depoya koymayı planlamıyorsanız uygulamayı özel olarak da işaretleyebilirsiniz.

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

51

Dan_nl'nin belirttiği gibi, package.json dosyasına özel bir sahte depo ekleyebilirsiniz. Bunun için isim ve sürüme bile ihtiyacınız yok:

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

Güncelleme: Bu özellik belgesizdir ve çalışmayabilir. Aşağıdaki seçeneği belirleyin.

Daha da iyisi: privateBayrağı doğrudan ayarlayın . Bu şekilde npm bir README dosyası da istemez:

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

Bu cevap hakkında başka bir kullanıcı hakkında bildirim aldım. Görünüşe repository.privategöre docs.npmjs.com/files/package.json'a göre belgelenmiş davranışlar (ya da artık kabul edilmiyor) .
gustavohenke

1
@gustavohenke: Teşekkür ederim, haklı görünüyorsunuz - privateüst düzey mülk yine de daha iyi bir seçenek. Cevabım güncellendi.
wortwart

46

Bunu kendinizden package.jsonalıyorsanız, repositoryalanı buna ekleyin . (gerçek deponuzun bağlantısını kullanın):

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

Tam github proje dosya bağlantısını ( http://veya dahil) https://
açıklığa kavuştuğunuz

9

Kaçtın mı npm init? Bu komut sizi her şeyden geçiriyor ...


9

Basit bir kelime ile Projenizin package.json depo özelliği yoktur, eklemeniz gerekir,

ve paketinize depo eklemeniz gerekir. json aşağıdaki gibi

resim açıklamasını buraya girin

ve sen senaryolarına göre açıklayayım

depo alanını aşağıdaki gibi bir şey eklemeniz gerekir

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

7

Gibi uyarıları önlemek için:

npm WARN project.com@1.0.0 No repository field.

Proje paketinizde depo tanımlamanız gerekir. Json. "private": trueDepoya yayınlamadan geliştirme yaptığınız durumda package.json içinde ayarlayabilirsiniz .

Misal:

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

Bununla ilgili NPM belgeleri: https://docs.npmjs.com/files/package.json


6

Bir depo belirtmek istemiyorsanız, package.jsondosyaya aşağıdaki satırları ekleyebilirsiniz :

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

Bu benim için çalıştı.
Ekleyerek private, bir repoya bağlanmanıza gerek yoktur.


4

Bu, kendi doğru detaylarınızı kullanmanıza yardımcı olacaktır.

npm ls dist-tag

bu daha sonra doğru bilgileri gösterecektir, böylece sürüm dosyasının konumunu vb.

zevk almak :)


1
'--Empty
MJ

3

Evet, muhtemelen -fkomutunuzun sonuna ekleyerek yeniden oluşturabilirsiniz .


1

açısal kurmak için
npm install -g @ nagular / cli yerine npm install -g açısal-cli kullanın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.