npm WARN package.json: Tidak ada bidang repositori


810

Saya menginstal Express.js dengan perintah berikut:

sudo npm install -g express

Saya mendapatkan peringatan berikut:

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.

Saya baru mengenal Node.js dan Express.js. Mengapa saya memiliki peringatan di atas? Haruskah saya khawatir?


19
Dengan melihat pertanyaan ini satu tahun kemudian, saya menyadari bahwa saya secara mental menghapus semua peringatan ini setiap kali saya menginstal paket npm. Ini adalah sesuatu yang harus dikembangkan oleh para pengembang paket.
nha

@nha ya, saya biasanya melihat peringatan itu ketika melakukan beberapa operasi npm dan memperbaikinya jika ada dalam paket yang saya kembangkan.
gustavohenke

29
untuk repo pribadi, tambahkan saja "private": trueke package.json
chovy

Jawaban:


1281

Ini hanya cek pada NPM v1.2.20, mereka melaporkan ini sebagai peringatan.

Namun, jangan khawatir, ada sangaaaat banyak paket yang masih tidak memiliki repositorylapangan di mereka package.json. Bidang ini digunakan untuk tujuan informasi.

Jika Anda seorang pembuat paket, masukkan ke repositorydalam Anda package.json, seperti ini:

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

Baca lebih lanjut tentang repositorybidang ini, dan lihat bug yang dicatat untuk detail lebih lanjut.


Selain itu, seperti yang awalnya dilaporkan oleh @dan_nl , Anda dapat mengatur privatekunci di package.json.
Ini tidak hanya akan menghentikan Anda dari menjalankan npm publishaplikasi secara tidak sengaja , tetapi juga akan menghentikan NPM dari mencetak peringatan terkait package.jsonmasalah.

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

20
Beberapa bulan setelah jawaban saya dan saya sepertinya belum ada masalah sejauh ini :)
gustavohenke

2
NPM 2.14 sekarang tidak mencetak kesalahan ketika repositorykosong dan privatedisetel ke true.
Blaise

9
@Blaise, saya tidak mendapatkan peringatan apa pun di NPM 3.3.3 dengan menggunakanprivate: true
gustavohenke

3
Pertanyaan, mengapa bukan "pribadi" default, maksud saya berapa banyak proyek npm yang dibuat versus berapa banyak yang benar-benar diterbitkan, apakah benar-benar ada lebih banyak kode perpustakaan daripada kode pengguna?
Felype

1
Terima kasih untuk pribadi: benar, entah bagaimana, saya melewatkan yang ini selama ini.
Jeremy Chone

394

Anda juga dapat menandai aplikasi sebagai pribadi jika Anda tidak berencana untuk memasukkannya ke dalam repositori yang sebenarnya.

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

51

Seperti yang dinyatakan dan_nl, Anda dapat menambahkan repositori palsu pribadi di package.json. Anda bahkan tidak memerlukan nama dan versi untuk itu:

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

Pembaruan: Fitur ini tidak berdokumen dan mungkin tidak berfungsi. Pilih opsi berikut.

Lebih baik lagi: Atur privatebendera secara langsung. Dengan cara ini npm tidak meminta file README:

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

Dapatkan pemberitahuan tentang pengguna lain tentang jawaban ini. Sepertinya repository.privateperilaku yang tidak didokumentasikan (atau tidak lagi diterima), menurut docs.npmjs.com/files/package.json .
gustavohenke

1
@gustavohenke: Terima kasih, sepertinya Anda benar - privatekarena properti tingkat atas adalah pilihan yang lebih baik. Memperbarui jawaban saya.
Perjalanan

46

Jika Anda mendapatkan ini dari milik Anda sendiri package.json, tambahkan saja repositorybidang ke dalamnya. (gunakan tautan ke repositori Anda yang sebenarnya):

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

Terima kasih telah menjelaskan untuk menggunakan tautan file proyek github lengkap (termasuk http://atau https://!
twknab

9

Apakah kamu sudah lari npm init? Perintah itu menuntun Anda melalui segalanya ...


9

Dalam Simple word- package.json dari proyek Anda tidak memiliki properti repositori, Anda harus menambahkannya,

dan Anda harus menambahkan repositori di package.json Anda seperti di bawah ini

masukkan deskripsi gambar di sini

dan Biarkan saya jelaskan sesuai dengan skenario Anda

Anda harus menambahkan bidang repositori seperti di bawah ini

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

7

Untuk menghindari peringatan seperti:

npm WARN project.com@1.0.0 No repository field.

Anda harus mendefinisikan repositori di package.json proyek Anda. Dalam kasus ketika Anda berkembang tanpa penerbitan ke repositori, Anda dapat mengaturnya "private": truedi package.json

Contoh:

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

Dokumentasi NPM tentang ini: https://docs.npmjs.com/files/package.json


6

Jika Anda tidak ingin menentukan repositori, Anda dapat menambahkan baris berikut ke package.jsonfile:

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

Itu berhasil bagi saya.
Dengan menambahkan private, Anda tidak perlu menautkan ke repo.


4

ini akan membantu Anda semua untuk menemukan rincian Anda sendiri yang benar digunakan

npm ls dist-tag

ini kemudian akan menampilkan info yang benar sehingga Anda tidak menebak lokasi file versi dll

Nikmati :)


1
Saya mendapat jawaban sebagai '--empty
MJ

3

Ya, mungkin Anda bisa membuat ulang dengan memasukkan -fdi akhir perintah Anda


1

gunakan npm install -g angular-cli alih-alih
npm install -g @ nagular / cli untuk menginstal Angular

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.