npm WARN package.json: कोई रिपॉजिटरी फ़ील्ड नहीं


808

मैंने निम्नलिखित कमांड के साथ Express.js स्थापित किया:

sudo npm install -g express

मुझे निम्नलिखित चेतावनी मिलती है:

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 और Express.js में नया हूं। मेरे पास उपरोक्त चेतावनी क्यों है? क्या मुझे चिंतित होना चाहिए?


19
एक साल बाद इस प्रश्न को देखकर, मुझे एहसास हुआ कि मैं हर बार जब एनपीएम पैकेज स्थापित करता हूं तो मैं इन सभी चेतावनियों को मानसिक रूप से मिटा देता हूं। यह कुछ ऐसा है जो पैकेज डेवलपर्स को शायद थोड़ा अधिक सावधान रहना चाहिए।
nha

@ हाँ, मैं आमतौर पर उन चेतावनियों को देखता हूं जब कुछ एनपीएम ऑपरेशन करते हैं और उन्हें ठीक कर देते हैं यदि यह पैकेज में मैं विकसित कर रहा हूं।
gustavohenke

29
निजी रेपो के लिए, बस "private": truepackage.json
chovy

जवाबों:


1279

यह एनपीएम v1.2.20 के रूप में सिर्फ एक जांच है, वे इसे एक चेतावनी के रूप में रिपोर्ट करते हैं।

हालांकि, चिंता मत करो, देखते हैं sooooooo कई पैकेज जो अभी भी नहीं है repositoryउनके में क्षेत्र package.json। इस क्षेत्र का उपयोग सूचना के उद्देश्यों के लिए किया जाता है।

मामले में आप एक पैकेज लेखक हैं, repositoryअपने package.jsonको इस तरह रखें:

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

repositoryक्षेत्र के बारे में अधिक पढ़ें , और आगे के विवरण के लिए लॉग बग देखें।


इसके अतिरिक्त, जैसा कि मूल रूप से @dan_nl द्वारा बताया गया है , आप privateअपने में कुंजी सेट कर सकते हैं package.json
यह न केवल आपको गलती से npm publishआपके ऐप में चलने से रोकेगा , बल्कि एनपीएम को package.jsonसमस्याओं के बारे में चेतावनी देने से भी रोकेगा ।

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

20
मेरे जवाब के कुछ महीनों बाद और मुझे अब तक कोई समस्या नहीं है :)
gustavohenke

2
एनपीएम 2.14 अब repositoryखाली होने पर एक त्रुटि प्रिंट करता है और privateसही पर सेट होता है।
Blaise

9
@ बाइस, मुझे NPM 3.3.3 में कोई चेतावनी नहीं मिलीprivate: true
gustavohenke

3
प्रश्न, क्यों "निजी" डिफ़ॉल्ट नहीं है, मेरा मतलब है कि कितने npm परियोजनाएं बनाई जाती हैं बनाम कितने वास्तव में प्रकाशित होते हैं, क्या वास्तव में उपयोगकर्ता कोड की तुलना में अधिक पुस्तकालय कोड है?
फेल्पे

1
निजी के लिए धन्यवाद: सच है, किसी भी तरह, मैं इन सभी वर्षों से चूक गया।
जेरेमी चोन

394

यदि आप इसे वास्तविक भंडार में रखने की योजना नहीं बनाते हैं तो आप आवेदन को निजी के रूप में भी चिह्नित कर सकते हैं।

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

51

जैसा कि dan_nl ने कहा है, आप package.json में एक निजी नकली भंडार जोड़ सकते हैं। आपको इसके लिए नाम और संस्करण की भी आवश्यकता नहीं है:

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

अद्यतन: यह सुविधा अनैच्छिक है और काम नहीं कर सकती है। निम्न विकल्प चुनें।

अभी भी बेहतर: privateसीधे ध्वज सेट करें । इस तरह से npm या तो README फाइल नहीं मांगता है:

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

इस उत्तर के बारे में किसी अन्य उपयोगकर्ता को सूचित किया गया। डॉक्स . npmjs.com/files/package.json केrepository.private अनुसार ऐसा लगता है कि दस्तावेज व्यवहार में नहीं है (या अब इसे स्वीकार नहीं किया गया है) ।
14 अक्टूबर को gustavohenke

1
@gustavohenke: धन्यवाद, ऐसा लगता है कि आप सही हैं - privateजैसा कि शीर्ष स्तर की संपत्ति वैसे भी बेहतर विकल्प है। मेरे उत्तर को अपडेट किया।
वॉर्टवार्ट

46

यदि आप इसे अपने से प्राप्त कर रहे हैं package.json, तो बस इसमें repositoryफ़ील्ड जोड़ें । (अपने वास्तविक भंडार के लिंक का उपयोग करें):

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

पूर्ण GitHub प्रोजेक्ट फाइल लिंक (सहित उपयोग करने के लिए स्पष्ट करने के लिए धन्यवाद http://या https://!
twknab

9

क्या आपने चलाया है npm init? वह आदेश आपको सब कुछ देता है ...


9

सरल शब्द में, आपके प्रोजेक्ट के पैकेज में किसी के पास रिपॉजिटरी की संपत्ति नहीं है जिसे आपको इसे जोड़ना होगा,

और आपको नीचे की तरह अपने पैकेज में रिपॉजिटरी जोड़ना होगा

यहां छवि विवरण दर्ज करें

और मुझे अपने परिदृश्य के अनुसार समझाएं

आपको नीचे की तरह रिपॉजिटरी फील्ड को जोड़ना होगा

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

7

चेतावनियों से बचने के लिए जैसे:

npm WARN project.com@1.0.0 No repository field.

आपको अपने प्रोजेक्ट पैकेज में रिपॉजिटरी को परिभाषित करना होगा। उस स्थिति में जब आप रिपॉजिटरी में प्रकाशित नहीं होने के साथ विकसित कर रहे हैं जिसे "private": trueआप पैकेज.जॉन में सेट कर सकते हैं

उदाहरण:

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

इस बारे में एनपीएम प्रलेखन: https://docs.npmjs.com/files/package.json


6

यदि आप एक रिपॉजिटरी निर्दिष्ट नहीं करना चाहते हैं तो आप निम्न पंक्तियों को package.jsonफ़ाइल में जोड़ सकते हैं :

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

मेरे लिए वह काम कर गया।
जोड़कर private, आपको रेपो से लिंक करने की आवश्यकता नहीं है।


4

यह आप सभी को अपने स्वयं के सही विवरण का उपयोग करने में मदद करेगा

npm ls dist-tag

यह तब सही जानकारी दिखाएगा ताकि आप संस्करण फ़ाइल स्थान आदि का अनुमान न लगाएं

का आनंद लें :)


1
मुझे '27 'के रूप में प्रतिक्रिया मिली
एमजे जूल

3

हाँ, शायद आप -fअपने कमांड के अंत में शामिल करके एक को फिर से बना सकते हैं / बना सकते हैं


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.