উত্তর:
যদি আপনি না জানেন তবে এটি সম্ভবত গ্লোবালগুলি আপনার পক্ষে সঠিক উত্তর।
যে কোনও উপায়ে, আপনার বুঝতে হবে:
এই বৈশিষ্ট্যটি খুব সম্প্রতি বোভারে চালু হয়েছিল এবং এটি এখনও কোনও দলিল নয় (এএফাইক)। এটি মূলত বর্ণনা করে moduleType
, যা জানায় যে প্যাকেজটি কী কী মডিউল প্রযুক্তির জন্য গ্রহন করা উচিত (উপরে দেখুন)।
এখনই, প্যাকেজের ফাইলটিতে moduleType
সম্পত্তি সেট করা ছাড়া এটির কোনও প্রভাব নেই bower.json
।
মূল টান-অনুরোধের জন্য https://github.com/bower/bower/pull/934 দেখুন ।
মন্তব্যের জবাব দেওয়ার জন্য কয়েকটি অতিরিক্ত পয়েন্ট:
moduleType
সম্পত্তি সম্পর্কে কোনও বৈধতা দেওয়া হয়নি - যার অর্থ হল যে লোকেরা প্রযুক্তিগতভাবে এর জন্য তারা যে মানটি চায় তা ব্যবহার করার অনুমতিপ্রাপ্ত, এমনকি angularjs
যদি তারা এটি করতে আগ্রহী মনে করে তবেnon-interoperable/proprietary moduleTypes
(মনে সুরকার, কৌণিক, ইত্যাদি) - যা সহজেই অনুমেয়, কিন্তু এখনো আবার, কিছুই সত্যিই ব্যবহার থেকে মানুষ রোধ করে moduleType
মান তারা চানyui moduleType
, সুতরাং, সেখানে একটি "ব্যতিক্রম" তৈরি করা হবে, ধরে নিই যে তারা সম্মিলিত পরিকল্পনার অংশ umআমি যদি একটি তালিকাভুক্ত প্যাকেজ পরিচালকের জন্য কোনও প্যাকেজ লেখার জন্য এবং তা বোভারে প্রকাশ করতে চাই তবে আমি কী করব?
আমি কোনও এসআই 6 মডিউল লেখব এবং আমার প্রয়োজন প্যাকেজ ফর্ম্যাটটিকে আউটপুট করতে / প্যাচ এস 6-ট্রান্সপ্লার ব্যবহার করুন । তারপরে আমি / অথবা:
es6
হিসাবে ব্যবহার করুনmoduleType
দাবি অস্বীকার: আমার কাছে অ্যাঙ্গুলারজ মডিউলগুলি লেখার বাস্তব জীবনের অভিজ্ঞতা নেই।
angularjs
নিজেই, আমি ব্যবহার করতে পারে globals
, হ্যাঁ, কিন্তু আমার আপডেটের পড়ুন। আশা করি এইটি কাজ করবে.
আমি bower init
প্রথমবারের জন্যও ব্যবহার করছি ।
কিছু জাভাস্ক্রিপ্ট কোড মডিউলাইজ করার জন্য বিকল্পগুলির বিভিন্ন উপায়ে উল্লেখ করা উচিত:
define
যেমন প্রয়োজনীয়গুলিও।require
।আমার ক্ষেত্রে আমি একটি নোড.জেএস মডিউল প্রবাহ লিখেছি কিন্তু আমি একটি ডিস্ট / ড্লোফ্লো.জেএস ফাইল তৈরি করতে ব্রাউসরিফাই ব্যবহার করছি যা বিশ্বব্যাপী প্রবাহের রফতানি করে : তাই আমি গ্লোবালগুলি নির্বাচন করেছি ।
উইন্ডো গ্লোবাল অবজেক্ট হিসাবে আমি যে কমান্ডটি ব্রাউজফ্রাইয়ের ফ্লাওয়ার ব্যবহার করতাম
browserify -s dflow -e index.js -o dist/dflow.js
ব্রাউজারের অভ্যন্তরেও প্রয়োজনীয় ব্যবহার প্রয়োজন বলে আমি এটিকে পরিবর্তন করেছি , তাই এখন আমি ব্যবহার করছি
browserify -r ./index.js:dflow -o dist/dflow.js
তাই আমি পরিবর্তিত bower.moduleType করার নোড আমার মধ্যে bower.json ফাইল।
মূল অনুপ্রেরণাটি ছিল যে যদি আমার মডিউলের নামের কোনও ড্যাশ থাকে, উদাহরণস্বরূপ আমার প্রকল্পের ফ্লো-ভিউ , আমার ফ্লোভিউতে বিশ্বব্যাপী নাম উটলাইজ করা দরকার ।
এই নতুন পদ্ধতির আরও দুটি সুবিধা রয়েছে:
${npm_package_name}
ভেরিয়েবলের সুবিধা নিতে পারি এবং ব্রাউজ করার জন্য ব্যবহার করা স্ক্রিপ্টটি একবার লিখতে পারি।এটি অন্য একটি বিষয়, তবে, এটি পরবর্তী উপকারের জন্য কীভাবে কার্যকর তা বিবেচনা করার জন্য আপনি সত্যই মূল্যবান: npm.scripts.browserify
আমার প্যাকেজটিতে আমি যে বৈশিষ্ট্যটি ব্যবহার করি তা ভাগ করে নিতে দিন j
"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
: এএমডির মত দিয়ে জাভাস্ক্রিপ্ট মডিউল সামঞ্জস্যপূর্ণ RequireJS ব্যবহারdefine()
সিনট্যাক্সnode
: জাভাস্ক্রিপ্ট মডিউলটি নোড এবং কমনএক্সের সাথেmodule.exports
সিনট্যাক্স ব্যবহার করে সামঞ্জস্যপূর্ণes6
: জাভা স্ক্রিপ্ট মডিউল ECMAScript 6 মডিউলগুলির সাথে সামঞ্জস্যপূর্ণ , ব্যবহারexport
এবংimport
সিনট্যাক্সyui
: জাভা স্ক্রিপ্ট মডিউলটি YUI মডিউলগুলির সাথে সামঞ্জস্য করেYUI.add()
সিনট্যাক্স ব্যবহার করে
প্রাসঙ্গিক লিঙ্ক: https://github.com/bower/spec/blob/master/json.md# মডুলটাইপ