जवाबों:
यदि आप नहीं जानते हैं, तो यह काफी संभावना है कि ग्लोबल्स आपके लिए सही उत्तर है।
किसी भी तरह, आपको समझने की आवश्यकता है:
इस सुविधा को बहुत हाल ही में बोवर में पेश किया गया था और इसे अभी तक (AFAIK) में प्रलेखित नहीं किया गया है। यह अनिवार्य रूप से वर्णन करता है moduleType
, जो बताता है कि कौन सी मॉड्यूल तकनीक पैकेज का उपभोग करने के लिए है (ऊपर देखें)।
अभी, इसमें moduleType
संपत्ति सेट करने के अलावा कोई प्रभाव नहीं हैbower.json
पैकेज फ़ाइल ।
Https://github.com/bower/bower/pull/934 देखेंमूल पुल-अनुरोध के लिए ।
टिप्पणियों का जवाब देने के लिए कुछ अतिरिक्त बिंदु:
moduleType
संपत्ति पर कोई सत्यापन नहीं हुआ है - जिसका अर्थ है कि लोगों को तकनीकी रूप से वे जो भी मूल्य चाहते हैं, उसका उपयोग करने की अनुमति है, जिसमें शामिल हैंangularjs
अगर वे ऐसा करने के लिए इच्छुक महसूस करते हैंnon-interoperable/proprietary moduleTypes
(लगता है संगीतकार, कोणीय, आदि) - जो आसानी से समझा जा सकता है, लेकिन एक बार फिर, कुछ भी नहीं सच का उपयोग करने से लोगों को रोकता है moduleType
मूल्य वे चाहते हैंyui moduleType
, इसलिए, "अपवाद" बनाए जाने हैं, यह मानते हुए कि वे एक ठोस योजना का हिस्सा हैंयदि मैं एक सूचीबद्ध सूचीबद्ध प्रबंधक के लिए एक पैकेज लेखक और इसे बोवर पर प्रकाशित करने के लिए क्या करूं?
मैं एक es6 मॉड्यूल लिखूंगा, और पैकेज प्रारूप को आउटपुट करने के लिए / पैच es6-transpiler का उपयोग कर सकता हूं जिसकी मुझे आवश्यकता है। तब मैं या तो / और:
es6
ए के रूप में उपयोग करेंmoduleType
अस्वीकरण: मेरे पास वास्तविक जीवन का अनुभव नहीं है जो कि कोणीयरज मॉड्यूल संलेखन है।
angularjs
अपने आप में, मैं उपयोग कर सकते हैं globals
, हाँ, लेकिन मेरे अद्यतन पढ़ें। उम्मीद है की वो मदद करदे।
मैं bower init
पहली बार भी उपयोग कर रहा हूं ।
कुछ जावास्क्रिप्ट कोड को संशोधित करने के लिए विकल्पों को विभिन्न तरीकों से संदर्भित करना चाहिए:
define
, आवश्यकता की तरह।require
।मेरे मामले में मैंने एक Node.js मॉड्यूल dflow लिखा है, लेकिन मैं एक डिस्टर्ब / dflow.js फ़ाइल बनाने के लिए ब्राउज़रफाइबर का उपयोग कर रहा हूं जो एक वैश्विक निर्यात करता है dflow तो मैं चयनित: var वैश्विक ।
मैं जिस कमांड का उपयोग करता था उसे dflow ब्राउज करने के लिए a विंडो ग्लोबल ऑब्जेक्ट के था
browserify -s dflow -e index.js -o dist/dflow.js
मैंने इसे बदल दिया क्योंकि मैं इसका उपयोग करना पसंद करता हूं ब्राउज़र के अंदर भी आवश्यकता , इसलिए अब मैं इसका उपयोग कर रहा हूं
browserify -r ./index.js:dflow -o dist/dflow.js
और इसलिए मैंने bower.moduleType को बदल दिया अपनी bower.json फ़ाइल में नोड में ।
मुख्य प्रेरणा यह थी कि अगर मेरे मॉड्यूल नाम में डैश है, उदाहरण के लिए मेरा प्रोजेक्ट फ्लो-व्यू , मुझे करने की आवश्यकता है camelize में वैश्विक नाम flowView ।
इस नए दृष्टिकोण के दो अन्य लाभ हैं:
${npm_package_name}
चर का और एक बार स्क्रिप्ट लिखने के लिए उपयोग कर सकता हूं।यह एक और विषय है, लेकिन, यह वास्तव में लायक है कि आप विचार करें कि यह बाद के लाभ के लिए कैसे उपयोगी है: मुझे npm.scripts.browserify
मेरे पैकेज में उपयोग की जाने वाली विशेषता को साझा करने दें । json
"browserify": "browserify -r ./index.js:${npm_package_name} -o dist/${npm_package_name}.js"
define(function(require, exports, module) { "use strict"; module.exports = { Collection: require("./collection"), View: require('./view') }; });
बस संदर्भ के लिए, यह ठीक है कि क्या बोवर मॉड्यूल प्रकारों के बारे में निर्दिष्ट करता है:
main
जावास्क्रिप्ट फ़ाइल में परिभाषित मॉड्यूल का प्रकार । निम्नलिखित स्ट्रिंग्स में से एक या एक सरणी हो सकती है:
globals
: जावास्क्रिप्ट मॉड्यूल है कि वैश्विक नाम स्थान के लिए कहते हैं, का उपयोग करwindow.namespace
याthis.namespace
वाक्य रचनाamd
: जावास्क्रिप्ट मॉड्यूल एएमडी के साथ संगत है, जैसे कि आवश्यकताएँ ,define()
सिंटैक्स का उपयोग करनाnode
: सिंटैक्स का उपयोग करके नोड और कॉमनज के साथ जावास्क्रिप्ट मॉड्यूल संगतmodule.exports
es6
: जावास्क्रिप्ट मॉड्यूल ECMAScript 6 मॉड्यूल के साथ संगत , उपयोगexport
औरimport
वाक्यविन्यासyui
: सिंटैक्स का उपयोग करके जावास्क्रिप्ट मॉड्यूल YUI मॉड्यूल के साथ संगत हैYUI.add()
प्रासंगिक लिंक: https://github.com/bower/spec/blob/master/json.md#moduletype