URL और निर्दिष्ट संस्करण से Bower के साथ एक निर्भरता स्थापित करना


154

मैं URL का उपयोग करके Bower के साथ निर्भरता स्थापित करने का प्रयास कर रहा हूं। बोवर प्रलेखन के रूप में:

पैकेज स्थापित करने के लिए कई तरीके प्रदान करता है:

    # Using the dependencies listed in the current directory's bower.json 
    bower install
    # Using a local or remote package 
    bower install <package>
    # Using a specific version of a package 
    bower install <package>#<version>
    # Using a different name and a specific version of a package 
    bower install <name>=<package>#<version> 

<package>निम्नलिखित में से कोई भी कहां हो सकता है:

  • एक नाम जो बोवर के साथ पंजीकृत पैकेज के लिए मैप करता है, जैसे, jquery।
  • एक दूरस्थ गेट एंडपॉइंट, उदाहरण के लिए git://github.com/someone/some-package.git,। सार्वजनिक या निजी हो सकता है।
  • एक स्थानीय समापन बिंदु, यानी, एक फ़ोल्डर जो एक गिट रिपॉजिटरी है।
  • एक आशुलिपि समापन बिंदु, उदाहरण के लिए, someone/some-package (गिटहब के लिए चूक)।
  • ज़िप और टार फ़ाइलों सहित एक फ़ाइल का URL। इसकी सामग्री निकाली जाएगी।

हालाँकि, तब यह कहता है, कि URL को छोड़कर सभी प्रकार एक संस्करण को निर्दिष्ट करने की अनुमति देते हैं।

मैं URL डाउनलोड की निर्भरता के लिए संस्करण कैसे निर्दिष्ट करूं?

जवाबों:


194

पैकेज नाम के बजाय git समापन बिंदु का उपयोग करें:

bower install https://github.com/jquery/jquery.git#2.0.3

8
यह एक गिट एंडपॉइंट है, और वर्जनिंग कार्यों को निर्दिष्ट करता है। यदि आप उदाहरण के लिए जावास्क्रिप्ट फ़ाइल को सीधे निर्दिष्ट करते हैं, तो यह काम नहीं करता है
Edmondo1984

1
हाल के संस्करणों में बोवर के साथ URL की अनुमति है।
lfender6445

BTW: svnबहुत काम करता है, जैसेbower install crypto-js=svn+http://crypto-js.googlecode.com/svn/#~3.1.2 --save
Preexo

5
यदि आपके पास एक ENORESTARGET URL sources can't resolve targetshttps://github.com/jquery/jqueryhttps://github.com/jquery/jquery.git.git
कमिट के

2
क्या बोवर ने संस्करण टैग को सामान्य बनाने के लिए इसे उपसर्ग किया है v? जब मैं bower install https://github.com/my/repo.git#1.0.0यह काम करता हूं तब भी जब मैंने धक्का दिया था, तब वास्तविक टैग को बुलाया गया था v1.0.0
स्पिनिंगअरो

54

यदि आप अपनी निर्भरता निर्दिष्ट करने के लिए bower.json फ़ाइल का उपयोग करते हैं:

{
     "dependencies": {
         ...
         "photo-swipe": "git@github.com:dimsemenov/PhotoSwipe.git#v3.0.x",

#bower 1.4 (tested with that version) can read repositorios with uri format

         "photo-swipe": "git://github.com/dimsemenov/PhotoSwipe.git#v3.0.x",

     }
}

बस याद रखें कि बोवर भी जारी किए गए संस्करणों और टैगों की खोज करता है ताकि आप लगभग हर चीज को इंगित कर सकें, और पिछले उदाहरण की तरह बुनियादी क्वेरी पैटर्न को इंटरप्रेट कर सकें। संस्करण 3.0 का नवीनतम मामूली अपडेट मिलेगा (बोवर 1.3.5 से परीक्षण)

अद्यतन , प्रश्न विवरण के रूप में भी केवल एक यूआरएल का उपयोग कर उल्लेख किया है और एक github भंडार का कोई उल्लेख नहीं है।

एक अन्य उदाहरण वांछित url का उपयोग करके इस कमांड को निष्पादित करना है, जैसे:

bower install gmap3MarkerWithLabel=http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.0/src/markerwithlabel.js -S

वह कमांड आपके js लाइब्रेरी को {आपके डेस्टिनेशन पाथ} /gmap3MarkerWithLabel/index.js में डाउनलोड करता है और स्वचालित रूप से आपकी bower.json फ़ाइल में एक प्रविष्टि बनाता है जिसे gmap3MarkerWithLabel कहा जाता है: ... "उसके बाद, bower update gmap3MarkerWithLabelयदि आवश्यक हो तो आप केवल निष्पादित कर सकते हैं ।

अजीब बात है अगर आप प्रक्रिया बैकवार्स करते हैं (मैन्युअल रूप से bower.json में प्रविष्टि दर्ज करें, तो एक bower स्थापित करें प्रविष्टि नाम नहीं) यह काम नहीं करता है, आपको एक

bower ENOTFOUND पैकेज gmapV3MarkerWithLabel नहीं मिला


++ आरई कैविएट प्रक्रिया को पीछे की ओर करने के बारे में
जेकॉब नोव

2018 के रूप में। लोग विकास में नहीं, बल्कि बोवर से दूर चले जाएं, और यार्न जैसे किसी अन्य पैकेज प्रबंधन उपकरण का उपयोग करें। हमारे पास कई तीसरे पक्ष के पुस्तकालय डेवलपर्स के पास समस्याएँ हैं, जिन्होंने बेहतर स्टैंडराइज्ड तरीके से जाने के लिए बोवर पैकेज जारी करना बंद कर दिया है। यार्न बोवर की तुलना में तेज़ है और वास्तव में माइग्रेट करने में आसान है।
le0diaz


21

किसी विशिष्ट कमिट को लक्षित करना

रिमोट (जीथूब)

जीथब का उपयोग करते समय, ध्यान दें कि आप अपने क्लोन हैश के अंत में अपने हैश को जोड़कर एक विशिष्ट कमिट (उदाहरण के लिए, आपके द्वारा बनाए गए और अपडेट किए गए कांटे) को भी लक्षित कर सकते हैं। उदाहरण के लिए:

"dependencies": {
  "example": "https://github.com/owner_name/repo_name.git#9203e6166b343d7d8b3bb638775b41fe5de3524c"
}

स्थानीय रूप से (फाइल सिस्टम)

या यदि आप अपनी परियोजना की .गित निर्देशिका का उपयोग करते हैं, तो आप अपने स्थानीय फ़ाइल सिस्टम में एक कमिट को लक्षित कर सकते हैं, जैसे (विंडोज पर; आगे की स्लैश पर ध्यान दें):

"dependencies": {
  "example": "file://C:/Projects/my-project/.git#9203e6166b343d7d8b3bb638775b41fe5de3524c"
}

यह लाइब्रेरी कोड के परीक्षण का एक तरीका है जिसे आपने स्थानीय रूप से प्रतिबद्ध किया है लेकिन अभी तक रेपो में धकेला नहीं गया है।


1
धन्यवाद! मैं एक पैच के साथ एक कांटा बोवर घटक का उपयोग कर रहा था, और यह उस रेपो के लिए मुख्य बोवर फ़ाइल के अनुसार नवीनतम स्थापित करता रहा। प्रतिबद्ध हैश जोड़ने से मुझे अपना सबसे हालिया संस्करण डाउनलोड करने की अनुमति मिली।
एलियोट्रेगन

9

बस एक अद्यतन।

अब अगर यह एक जीथब रिपॉजिटरी है तो सिर्फ जीथब शॉर्टहैंड का उपयोग करना पर्याप्त है यदि आप निश्चित रूप से संस्करण का बुरा नहीं मानते हैं।

गिटहब शॉर्टहैंड

$ bower install desandro/masonry

7

यहाँ एक विशिष्ट टैग स्थापित करने या GitHub के माध्यम से प्रतिबद्ध करने के लिए एक आसान शॉर्ट-हैंड तरीका है bower.json

{
  "dependencies": {
    "your-library-name": "<GITHUB-USERNAME>/<REPOSITORY-NAME>#<TAG-OR-COMMIT>"
  }
}

उदाहरण के लिए:

{
  "dependencies": {
    "custom-jquery": "jquery/jquery#2.0.3"
  }
}

जिज्ञासा से बाहर, क्या रिपॉजिटरी से एक विशिष्ट निर्देशिका को लक्षित करना संभव है? git@git-url.git#v0.1.0/directory?
रईस

7

बस यूरी एंडपॉइंट को निर्दिष्ट करते हुए मेरे लिए काम किया , बोवर 1.3.9

  "dependencies": {
    "jquery.cookie": "latest",
    "everestjs": "http://www.everestjs.net/static/st.v2.js"
  }

चल रहा है bower install, मैं निम्नलिखित उत्पादन प्राप्त किया:

bower new           version for http://www.everestjs.net/static/st.v2.js#*
bower resolve       http://www.everestjs.net/static/st.v2.js#*
bower download      http://www.everestjs.net/static/st.v2.js

आप बोवर को अपडेट करने का भी प्रयास कर सकते हैं

  • npm update -g bower

प्रलेखन के अनुसार : निम्न प्रकार के यूआरएल समर्थित हैं:

http://example.com/script.js
http://example.com/style.css
http://example.com/package.zip (contents will be extracted)
http://example.com/package.tar (contents will be extracted)

3

मेरा मानना ​​है कि निर्दिष्ट संस्करण केवल गिट-एंडपॉइंट के लिए काम करता है। और फोल्डर / जिप वालों के लिए नहीं। जब आप bs को एक js-file / folder / zip से इंगित करते हैं, तो आप पहले से ही पैकेज और संस्करण निर्दिष्ट करते हैं (वास्तव में js को छोड़कर)। क्योंकि एक पैकेज में संस्करण के साथ bower.json है। 'बोवर इनस्टॉल' में एक संस्करण को निर्दिष्ट करने से समझ में आता है जब आप एक रिपॉजिटरी के लिए बोवर को इंगित कर रहे हैं जिसमें पैकेज के कई संस्करण हो सकते हैं। यह केवल मेरे विचार से किया जा सकता है।


3

कोशिश करें कि टैग संख्या bower install git://github.com/urin/jquery.balloon.js.git#1.0.3 --saveकहाँ 1.0.3है जिसे आप रिलीज़ के तहत टैग पढ़कर प्राप्त कर सकते हैं। git://सिस्टम से कनेक्ट करने के लिए भी URL द्वारा प्रतिस्थापित करें।


0

गिट से पैकेज स्थापित करता है और अपने bower.json निर्भरता ब्लॉक में सहेजें।

  1. bower register package-name git-endpoint#version
  2. install package-name --save

( --saveनिर्भरता ब्लॉक के अंदर bower.json फ़ाइल में पैकेज नाम संस्करण को बचाएगा)।

संदर्भ

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