2014-04-29 5 views
44

मैं बोवर उपयोग करने के लिए अपेक्षाकृत नया हूँ और अगर तुम उत्पादन में bower_components से लिंक करने वाले रहे हैं मैं नहीं बता सकता। क्या मुझे bower_components से अलग फ़ाइलों में लिंक करने या कॉपी करने के लिए एक अलग कार्य का उपयोग करना चाहिए?क्या आप उत्पादन में bower_components से लिंक करना चाहते हैं?

मैं इस क्योंकि मैं एक वेबसाइट एक निर्देशिका कहा जाता है कि "bower_components," कभी नहीं देखा है इसलिए मैं थोड़ा करने के लिए डर लगता हूँ पूछ रहा हूँ। सभी शुरुआती गाइड सिर्फ कोणीय ट्यूटोरियल की तरह 'bower_components/...' से लिंक होते हैं।

उत्तर

25

क्या आप यमन का उपयोग कर रहे हैं?

अपने Gruntfile.js के आधार पर आप विभिन्न कार्यों, इनमें से एक होना चाहिए 'बोवर से स्थापित' है: इस कार्य को पढ़ा जाएगा आप index.html, निम्नलिखित टिप्पणी ब्लॉक ढूंढने

<!-- bower:js --> 
<!-- endbower --> 

और इसके अंदर इंजेक्षन अपने सभी निर्भरता अपने bower.json में निर्दिष्ट। इसका मतलब है कि कार्य अपने सभी < स्क्रिप्ट src "/ bower_components/.." > ब्लॉकों के लिए लिखेंगे।

आपने कभी "bower_components" संदर्भों वाली वेबसाइट देखी नहीं है क्योंकि आपका/ऐप डीआईआर आपका 'विकास' वातावरण है, आपका स्रोत प्रोजेक्ट है। स्रोत से आप "बिल्ड" कार्य चलाने वाले उत्पादन एप्लिकेशन को बनाएंगे: यह कार्य विभिन्न उप-कार्यकर्ताओं द्वारा तैयार किया गया है जो विभिन्न नौकरियों को बनाता है, इनमें से एक को एक एकल जेएस फ़ाइल में bower_install कार्य द्वारा जोड़ा गया सभी स्क्रिप्ट शामिल है।

तो फिर वहाँ एक और काम है कि इस फाइल को कम करें जाएगा, एक और है कि परीक्षण चलाता है, एक और जहां अपने उत्पादन साइट रहता है और इतने पर है कि एक "जिले" निर्देशिका का निर्माण करेगा ...

आप Yeoman आप का उपयोग करते हैं इन सभी कार्यों को पहले से ही Gruntfile.js में कॉन्फ़िगर किया गया है, बस इसे खोलें और यह समझने की कोशिश करें कि प्रत्येक कार्य क्या करता है।

पहली नज़र में इसे समझना मुश्किल हो सकता है, उदाहरण के लिए बिल्ड कार्य 14 या 15 सबटास्क को संदर्भित करता है, मेरा सुझाव है कि आप कस्टम कार्यों को पंजीकृत करें जो केवल एक कार्य चलाते हैं और देखें कि क्या होता है।

चीयर्स

+0

बहुत बढ़िया उत्तर - धन्यवाद सर्जीओ। मैंने यह भी देखा है [यमन गितब टिप्पणी थ्रेड से] (https://github.com/yeoman/generator-angular/issues/310) कि/bower_components वास्तव में/dist में शामिल है, लेकिन मुझे यकीन नहीं है कि मैं समझता हूं तर्क अगर ** ** सबकुछ ** अंततः आपके द्वारा वर्णित के रूप में समाप्त किया गया है। विचार? – Chazbot

+1

@ चाज़बॉट, वास्तव में आप सही हैं। मैंने अपनी परियोजना पर गड़बड़ी 'बिल्ड' कार्य चलाया है और पाया है कि संकलित index.html निर्मित vendor.js फ़ाइल के बजाय बॉवर घटकों का उपयोग कर रहा है। आप bower_component स्क्रिप्ट ब्लॉक को हाथ से हटाकर अपने संकलित HTML को संपादित कर सकते हैं और vendor.js जोड़ सकते हैं, लेकिन मैं एक स्वचालित समाधान की तलाश में हूं। –

+0

@SergioRinaudo छवियों और फोंट के बारे में क्या? उनके संदर्भ केवल सीएसएस संसाधनों के अंदर मौजूद हैं, आप इसे कैसे संभालेंगे? मेरा मतलब है, बिना किसी bower_components को कॉपी करने के लिए। – bruha

5

मैं सीधे उससे लिंक के साथ किसी भी समस्या नहीं दिख रहा है, लेकिन आम तौर पर आप एक फाइल में अपनी स्क्रिप्ट के सभी जोड़ और यह बदसूरत करना इतना फ़ाइल आकार के उत्पादन के लिए कम हो जाता है चाहते हैं।

घुरघुराना uglify task काफी आसानी से आप के लिए इन बातों के दोनों संभाल कर सकते हैं। आपको बस जुड़ने के लिए फाइलों की एक सरणी की आपूर्ति करनी है।

// Project configuration. 
grunt.initConfig({ 
    uglify: { 
    my_target: { 
     files: { 
     'dest/output.min.js': ['src/input1.js', 'src/input2.js'] 
     } 
    } 
    } 
}); 
+0

यह जावास्क्रिप्ट फ़ाइलों के साथ एक अच्छा विचार है, लेकिन यदि सीएसएस छवियों का संदर्भ दे रहा है तो चीजें लिंक स्थानों के साथ थोड़ा गन्दा हो सकती हैं। –

12

आप (अपने bower.json फ़ाइल के आगे) एक .bowerrc फ़ाइल बनाने और कुछ और करने के लिए directory संपत्ति सेट करके अपने बोवर स्थापना निर्देशिका एक बेहतर नाम दे सकते हैं। उदाहरण के लिए, मैं अपने .bowerrc में निम्नलिखित है:

{ 
    "directory": "public/vendor" 
} 

तो फिर वहाँ है या नहीं, आप स्रोत नियंत्रण करने के लिए इस निर्देशिका की सामग्री में जाँच की जानी चाहिए की बारीकी से संबंधित सवाल है भी। For a much more in depth discussion of that question, see here

और आखिरकार, जैसा कि अन्य ने पहले से ही उल्लेख किया है, यह अनुशंसा की जाती है कि आप अपनी फ्रंट-एंड निर्भरताओं को संयोजित और छोटा करें।

+0

हालांकि यह एक अच्छा विचार है, बोवर कभी-कभी उन फ़ाइलों को ला सकता है जो अनावश्यक हैं और बस सर्वर पर जगह खाएं। –

3

बस bower_components का उपयोग करके शुरू करना बहुत आम है। आप इसे the angular-seed starter project's script references में देख सकते हैं। एक बार जब आप एक उत्पादन अनुप्रयोग तैनात कर लेते हैं और लोड समय और प्रदर्शन महत्वपूर्ण हो जाते हैं, तो आपको निर्भरताओं को मर्ज करने और कम करने के लिए समाधान में परिवर्तित होना चाहिए।

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

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