2016-02-12 4 views
21

आम तौर पर bower.json फ़ाइल कुछ निर्भरताओं को निर्दिष्ट करती है, लेकिन इन्हें आमतौर पर व्यक्त किया जाता है ताकि वे एक बोवर पैकेज के संस्करणों की एक श्रृंखला को अनुमति दें (उदा। >=1.0, जिसका अर्थ संस्करण 1.0 से अधिक कुछ है)।मैं कैसे पता लगा सकता हूं कि एक बोअर पैकेज का कौन सा संस्करण वास्तव में स्थापित है?

मैं एक स्वचालित प्रक्रिया है जो एक बोवर पैकेज का कौन सा संस्करण को खोजने के लिए की जरूरत है वास्तव में इस सिस्टम पर स्थापित किया गया है है अभी।

मानक यूनिक्स कमांड लाइन टूल्स/बॉवर कमांड का उपयोग करके, मैं इसे प्रोग्रामेटिक रूप से (केवल संस्करण स्वयं) कैसे ढूंढ सकता हूं?

bower info <thepackagename> करता नहीं इस शो - यह क्या वर्तमान में बोवर भंडार (उदाहरण के लिए, भले ही मैं bower info apackageIdonthaveinstalled कर यह अभी भी एक संस्करण संख्या वाले एक मान्य JSON संरचना दिखाई देगा) से उपलब्ध है के बारे में जानकारी दिखाता है।

cat bower_components/thepackagename/bower.json | node_modules/json/lib/json.js version कुछ पैकेजों के लिए काम करता है (एनपीएम पैकेज json स्थापित है), लेकिन सभी नहीं (उदाहरण के लिए jquery 2.2.0 के बॉवर पैकेज में bower.json नहीं है)।

उत्तर

6

सबसे अच्छा तरीका मैं अब मिल गया है, जो हर पैकेज मैं अब तक का सामना करना पड़ा के लिए काम करने लगता है, है:

cat bower_components/thepackagename/.bower.json | node_modules/json/lib/json.js version

(ध्यान दें अतिरिक्त ..bower.json में)।

ऐसा लगता है कि बॉवर .bower.json में स्थापित पैकेज के बारे में कुछ मेटाडेटा संग्रहीत करता है, और इसमें स्थापित संस्करण भी शामिल है।

सबसे अच्छा मैं अब तक के साथ आ गया है:

bower list | grep jquery | perl -pe 's/.*jquery#(.*?) .*$/$1/' 

(अगर, उदाहरण के लिए, पैकेज मैं में दिलचस्पी थी jquery था)।

कि कई कारणों से के लिए बहुत बदसूरत है:

  • मैं पैकेज का नाम दोहराने के लिए (हालांकि यह शायद एक बेहतर पर्ल स्क्रिप्ट जो लाइनों भी फिल्टर के साथ सुधार किया जा सकता है, मैं तो बस जा रहा हूँ आलसी)।

  • bower list सभी स्थापित पैकेजों के बारे में जानकारी प्राप्त करता है, न कि केवल मुझे जिसकी दिलचस्पी है - बाकी की जानकारी को त्याग दिया जाता है।

  • bower list रजिस्ट्री की जांच करने के लिए इंटरनेट कनेक्टिविटी की आवश्यकता होती है, अन्यथा यह विफल हो जाती है।

यह देखने में रुचि होगी कि यह विशेष रूप से अंतिम बिंदु पर सुधार किया जा सकता है या नहीं।

23

यहाँ एक ग्रेप आदेश है कि ऐसा करने के लिए: grep "version\"\:" bower_components/thepackagename/.bower.json

इसके अलावा, परियोजना के लिए सभी बोवर घटकों के संस्करणों को देखने के लिए एक आदेश - इस सूची एक आसान सीआई शिल्पकृति हो सकता है: grep "version\"\:" bower_components/*/.bower.json enter image description here

+1

जैसा कि सवाल में बताया गया है, यह उन पैकेजों के लिए काम नहीं करता है जिनमें 'bower.json' नहीं है। –

+1

अतिरिक्त नोट करें। .bower.json;) तो यह आदेश अनिवार्य रूप से वही है जैसा आप उपयोग करते हैं, सिवाय इसके कि यह 'json' पैकेज पर निर्भर नहीं है, और यह वर्तमान पैकेज के लिए * सभी * बॉवर निर्भरताओं के संस्करण दिखाता है। –

+1

यह स्वीकार्य उत्तर – Aron

5

क्या आपने कभी "बॉवर सूची - जेसन = 0 - ऑफलाइन" की कोशिश की है।

यह सभी बोवर पैकेज जानकारी सूचीबद्ध करेगा।

+1

'बोवर सूची' मेरे लिए सही जवाब था –

संबंधित मुद्दे

 संबंधित मुद्दे