CDN का उपयोग करने की बात यह है कि यह सबसे तेज़ है , सबसे पहले, क्योंकि यह एक वितरित नेटवर्क है, लेकिन दूसरी बात, क्योंकि ब्राउज़रों द्वारा स्थिर फ़ाइलों को कैश किया जा रहा है और संभावनाएं अधिक हैं, उदाहरण के लिए, CDN की jqueryलाइब्रेरी जो आपकी साइट है उपयोग पहले से ही उपयोगकर्ता के ब्राउज़र द्वारा डाउनलोड किए गए थे, और इसलिए फ़ाइल कैश हो गई थी, और इसलिए कोई अनावश्यक डाउनलोड नहीं हो रहा है। कहा जा रहा है, यह अभी भी एक अच्छा विचार है कि एक कमबैक प्रदान करें ।
अब, बूटस्ट्रैप के npm पैकेज की बात
यह है कि यह एक मॉड्यूल के रूप में बूटस्ट्रैप की जावास्क्रिप्ट फाइल प्रदान करता है । जैसा कि ऊपर उल्लेख किया गया है, यह ब्राउज़रइज़ का उपयोग करके इसे संभव बनाता है , जो कि सबसे अधिक संभावना मामला है और, जैसा कि मैं इसे समझता हूं, बूटस्ट्रैप का मुख्य कारण npm पर प्रकाशित किया गया है।require
इसे कैसे उपयोग करे
निम्नलिखित परियोजना संरचना की कल्पना करें:
परियोजना
| - node_modules
| - जनता
| | - सीएसएस
| | - img
| | - जे एस
| | - index.html
- पैकेज। json
अपने में index.htmlआप इस तरह से cssऔर jsफ़ाइलों को संदर्भित कर सकते हैं :
<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
जो सबसे सरल तरीका है, और .cssफाइलों के लिए सही है । लेकिन bootstrap.jsआपकी public/js/*.jsफ़ाइलों में कहीं न कहीं इस तरह की फ़ाइल को शामिल करना बेहतर है :
var bootstrap = require('bootstrap');
और आप इस कोड को केवल उन javascriptफाइलों में शामिल करते हैं, जहां आपको वास्तव में जरूरत है bootstrap.js। Browserify आपके लिए इस फाइल को शामिल करने का ध्यान रखता है।
अब, दोष यह है कि आपके पास अब node_modulesनिर्भरता के रूप में आपके सामने के अंत की फाइलें हैं , और node_modulesफ़ोल्डर को आमतौर पर चेक इन नहीं किया जाता है git। मुझे लगता है कि यह सबसे विवादास्पद हिस्सा है, जिसमें कई राय और समाधान हैं ।
UPDATE मार्च 2017
इस उत्तर को लिखे हुए मुझे लगभग दो साल बीत चुके हैं और एक अद्यतन जगह में है।
अब आम तौर पर स्वीकृत तरीका एक निर्माण चरण में अपनी सभी संपत्तियों को बंडल करने के लिए वेबपैक (या पसंद का एक और बंडलर) जैसे बंडल का उपयोग करना है।
सबसे पहले, यह आपको ब्राउज़र की तरह कॉमन सिंटैक्स का उपयोग करने की अनुमति देता है, इसलिए अपने प्रोजेक्ट में बूटस्ट्रैप जेएस कोड को शामिल करने के लिए आप वही करें:
const bootstrap = require('bootstrap');
के रूप में cssफ़ाइलें, webpack तो "कहा जाता है लोडर "। वे आपको अपने js कोड में यह लिखने की अनुमति देते हैं:
require('bootstrap/dist/css/bootstrap.css');
और सीएसएस फाइलें आपके निर्माण में शामिल "जादुई" होंगी। <style />जब आपका ऐप चलता है तो उन्हें गतिशील रूप से टैग के रूप में जोड़ा जाएगा , लेकिन आप उन्हें एक अलग cssफ़ाइल के रूप में निर्यात करने के लिए वेबपैक कॉन्फ़िगर कर सकते हैं । आप वेबपैक के प्रलेखन में इसके बारे में अधिक पढ़ सकते हैं।
निष्कर्ष के तौर पर।
- आपको एक बंडल के साथ अपना ऐप कोड "बंडल" करना चाहिए
- आपको न तो
node_modulesऔर न ही डायनेमिक रूप से निर्मित फ़ाइलों को तैयार करना चाहिए । आप buildnpm पर एक स्क्रिप्ट जोड़ सकते हैं जिसका उपयोग सर्वर पर फ़ाइलों को तैनात करने के लिए किया जाना चाहिए। वैसे भी, यह आपके पसंदीदा निर्माण प्रक्रिया के आधार पर विभिन्न तरीकों से किया जा सकता है।