'রিএ্যাক্ট-নেটিভ স্টার্ট'-এ ত্রুটিটি কীভাবে সমাধান করা যায়


117
  1. আমি সবেমাত্র নোড.জেএস এবং ক্লিপ ইনস্টল করেছি

    • ইনস্টল নোড.জেএস
    • ইনস্টল করা রিএ্যাক্ট-নেটিভ-ক্লিমে

      npm -g react-native-cli
  2. এবং একটি 'নতুন প্রকল্প' তৈরি করেছে।

    react-native init new_project
  3. এবং সেই 'নতুন_প্রজেক্ট' ডিরেক্টরিটির ভিতরে, আমি মেট্রো বান্ডলারটি ভালভাবে কাজ করে কিনা তা দেখে ক্লান্ত হয়ে পড়েছি।

    react-native start
  4. কিন্তু কমান্ডটি আমাকে নিম্নলিখিত ত্রুটি দিয়েছে এবং মেট্রো শুরু হচ্ছে না। এই ত্রুটি ঠিক করার জন্য কোনও সূত্র? (আমি উইন্ডোজ 10 ওএস ব্যবহার করছি))

    • আদেশ: C:\projects\new_proj>react-native start

      ত্রুটিটি অবৈধ নিয়মিত অভিব্যক্তি: /(.\fixtures.)node_modules] .react[[[[[[[[[[[[[[[:::::::::: Un:: :ter: :ter: :terter :terter :terterterterterterterterterterterterterterterterterterterterterterterterterterterter .ter .ter।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।। আরও তথ্যের জন্য --verbose পতাকা সহ সিএলআই চালান। সিনট্যাক্স এরির: অবৈধ নিয়মিত প্রকাশ: /(.\fixtures.)node_modules ) ব্ল্যাকলিস্টে (ডি: \ প্রকল্পগুলি \ নতুন_প্রজ \ নোড_মডিউলস \ মেট্রো-কনফিগারেশন \ এসসিআর \ ডিফল্ট \ ব্ল্যাকলিস্ট.জেএস: 34: 10) গেটব্ল্যাকলিস্ট্রে (ডি: \ প্রকল্পগুলি \ নতুন_প্রজ \ নোড_মডিউলগুলি \ বিক্রিয়া-নেটিভ \ নোড_মডিউলগুলি getDefaultConfig (কমিনিউটি \ ক্লিপ \ বিল্ড \ সরঞ্জামসমূহ \ লোডমেট্রো কনফিগ.জেএস: :৯: 59৯) (ডি: \ প্রকল্পগুলি \ নতুন_প্রজ \ নোড_মডিউলস \ রিট্যাক্ট নেটিভ \ নোড_মডিউলস @ রিট্যাক্ট-নেটিভ-কমিউনিটি \ ক্লিপ \ বিল্ড \ সরঞ্জাম \ লোডমেট্রোগন : 85: 20) লোড এ (ডি:


তারা যেমন বলেছিল Run CLI with --verbose flag for more details.সম্ভবত আপনি ব্যাকস্ল্যাশ থেকে বাঁচতে ভুলে গেছেন। স্ট্যাকওভারফ্লো . com/ প্রশ্নগুলি / 14639339/ … দেখুন । আরও বিশদ ছাড়াই বলতে পারি না।
rhand

কেবলমাত্র যদি আপনার জন্য নোড_মডিউলগুলিতে মেট্রো-কনফিগার উপস্থিত না থাকে তবে নীচে আমার উত্তরটি পরীক্ষা করুন।
gprathour

উত্তর:


248

আমি আজ প্রথমবারের মতো একটি ত্রুটি পেয়েছি। এটি উপস্থিত হয় \node_modules\metro-config\src\defaults\blacklist.js, একটি অবৈধ নিয়মিত প্রকাশ আছে যা পরিবর্তিত প্রয়োজন needed আমি এর sharedBlacklistথেকে প্রথম প্রকাশটি পরিবর্তন করেছি :

var sharedBlacklist = [
  /node_modules[/\\]react[/\\]dist[/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

প্রতি:

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

1
আপনাকে অনেক ধন্যবাদ! আপনি যেমন বলেছিলেন আমি পরিবর্তন করেছি এবং এটি এখন কাজ করে। আমাকে কি প্রতিটি প্রকল্পে এটি সংশোধন করতে হবে বা বিশ্বব্যাপী এটি প্রয়োগ করার কোনও উপায় আছে?
গান কেভিন

10
গিথুবের ক্যোয়ারী থেকে অন্য কিছু উত্তর পেয়েছেন। - 'এটি নোড ভি 12.11.0 এর কারণে হয়েছে, ভি 12.10.0 এ ডাউনগ্রেড এটি সমাধান করবে।' এটি লিও.লিরই ছিল। এবং আমার এটিও কার্যকর হয় কিনা তাও দেখতে হবে।
গান কেভিন

3
দুর্দান্ত ফিক্স! অনেক ধন্যবাদ. স্থানীয় প্রতিক্রিয়া মনে হচ্ছে দুর্গন্ধযুক্ত এনএমপি ক্যাশে থেকে পিআরএম ত্রুটি পর্যন্ত এমন বগি যাত্রায়। আমাকে ইনস্টল করতে মাত্র দুদিন সময় লেগেছে।
এডএনডি

4
/node_modules[\/\]react[\/\]dist[\/\].*/, শুধু এই লাইন পরিবর্তন করা দরকার
বিবেক

1
অনেক ধন্যবাদ! এটি আমার অনেক সময় বাঁচায়। আমি শুধু এই রাতে v12.13.0 করার v8.xx থেকে আমার Node.js উন্নত করেছেন এবং তারপর এই ত্রুটি হঠাৎ কোনো অ্যাপ্লিকেশন সূচনা ব্যর্থতা বিশালাকার ... না সচেতন এটা কারণ এই বাগ দ্বারা পোস্টটি ছাড়া করেনি ...
garykwwong

106

নোড ভি 12.11.0 এর কারণে এটি এই সমস্যাটি সমাধানের দুটি উপায় নিয়মিত অবস্থানের কারণে হয়

পদ্ধতি আমি

আপনি নোড v12.10.0 এ ডাউনগ্রেড করতে পারেন এটি পার্সিং ত্রুটি মোকাবেলায় সঠিক পদ্ধতি প্রয়োগ করবে

পদ্ধতি II

আপনি অবস্থিত ফাইলটি পরিবর্তন করে আপনার ক্ষেত্রে নিয়মিত প্রকাশটি সঠিকভাবে শেষ করতে পারেন:

\node_modules\metro-config\src\defaults\blacklist.js

থেকে:

var sharedBlacklist = [
  /node_modules[/\\]react[/\\]dist[/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

প্রতি:

 var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

2
এটি অত্যন্ত সহায়ক, আপনি ছেলেরা একটি অনুরোধ জমা দিতে পারবেন না? থেকে metro-configবা expo-cli?
it4zahoor

1
অক্টোবরে ফিরে আসার অনুরোধটি জমা দেওয়া হয়েছিল: github.com/facebook/metro/commit/…
স্কেলল্যাক

20

[দ্রুত উত্তর]

মেট্রোতে কিছু এনপিএম এবং নোড সংস্করণ ব্যবহার করে সমস্যা আছে।

আপনি ফাইলটিতে কিছু কোড পরিবর্তন করে সমস্যার সমাধান করতে পারেন \node_modules\metro-config\src\defaults\blacklist.js

এই পরিবর্তনশীল অনুসন্ধান করুন:

var sharedBlacklist = [
  /node_modules[/\\]react[/\\]dist[/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

এবং এটিতে পরিবর্তন করুন:

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

দয়া করে নোট করুন যে আপনি যদি এনটিএম ইনস্টল বা সুতা ইনস্টল পরিচালনা করেন তবে আপনাকে আবার কোড পরিবর্তন করতে হবে।


এই সমস্যাটি কি বিকাশকারীরা ঠিক করতে পারবেন না? প্রতিবারই আমি এখানে আসছি। ধন্যবাদ স্যার
হাসান বসরী

1
হ্যাঁ, মেট্রো বিকাশকারীরা এই পরিবর্তনগুলি করে সমস্যার সমাধান করতে পারেন।
জাভিয়ের সি।

2
ধন্যবাদ! এটি স্থির!
রবার্ট

আমি মনে করি না এটি ভাল সমাধান। নোড_মডিউলগুলির মধ্যে ফাইলগুলি সংশোধন করা হচ্ছে
কোডমাইন্ড

1
মনে রাখবেন যে আপনি যদি প্রতিক্রিয়া-নেটিভ (উদাহরণস্বরূপ 0.51.0) এর একটি পুরানো সংস্করণ ব্যবহার করছেন তবে পরিবর্তিত হওয়া ফাইলটি পরিবর্তিত স্থানে রয়েছে:.\node_modules\metro-bundler\src\blacklist.js
ভেন্রিক্স

20

আপনার দুটি সমাধান রয়েছে:

হয় আপনি ভি 12.10.0 নোড ডাউনগ্রেড করুন বা আপনি তৈরি প্রতিটি প্রকল্পের জন্য এই ফাইলটি পরিবর্তন করতে পারেন।

নোড_মডিউলস / মেট্রো-কনফিগার / এসসিআর / ডিফল্ট / ব্ল্যাকলিস্ট.জে এই পরিবর্তন করুন:

var sharedBlacklist = [
  /node_modules[/\\]react[/\\]dist[/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

এটি:

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

8

আমার একই সমস্যাটি আমি ই পরিবর্তন করেছিলাম: আমার প্রকল্পে in নোডজেএস \ রিঅ্যাক্টনেটিভ অ্যাপ্লিকেশন \ এক্সপোস্টেস্ট \ নোড_মডিউলস \ মেট্রো-কনফিগারেশন \ এসআরসি \ ডিফল্টস \ ব্ল্যাকলিস্ট.জেএস

থেকে

var sharedBlacklist = [
  /node_modules[/\\]react[/\\]dist[/\\].*/,
  /website\/node_modules\/.*/,
 /heapCapture\/bundle\.js/,
 /.*\/__tests__\/.*/
];

প্রতি

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

এটি আমার জন্য পুরোপুরি কাজ করেন


5

একজন জনসংযোগ একটি ফিক্স দিয়ে মার্জ করা হয়েছে মেট্রো সংগ্রহস্থল। এখন আমাদের কেবলমাত্র পরবর্তী প্রকাশের অপেক্ষা করা দরকার। আপাতত সেরা বিকল্পটি হ'ল নোডজেএস-এ ডাউনগ্রেড v12.10.0ব্র্যান্ডন যেমন উল্লেখ করেছেন, ইসার যে কোনও কিছুর পরিবর্তন করা node_modules/সত্যিই খারাপ অভ্যাস এবং এটি চূড়ান্ত সমাধান হবে না।


5

আমার প্রকল্পে মেট্রো-কনফিগার নেই, এখন কী?

আমি খুঁজে পেয়েছি সেখানে নেই যে বেশ পুরোনো প্রকল্পে metro-configমধ্যে node_modules। যদি আপনার ক্ষেত্রে এটি হয় তবে,

নোড_মডিউলস / মেট্রো-বান্ডলার / এসসিআর / ব্ল্যাকলিস্ট.জেজে যান

এবং অন্যান্য উত্তরে যেমন উল্লিখিত একই পদক্ষেপটি করুন ie

প্রতিস্থাপন করা

var sharedBlacklist = [
    /node_modules[/\\]react[/\\]dist[/\\].*/,
    /website\/node_modules\/.*/,
    /heapCapture\/bundle\.js/,
    /.*\/__tests__\/.*/
];

সঙ্গে

var sharedBlacklist = [
    /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
    /website\/node_modules\/.*/,
    /heapCapture\/bundle\.js/,
    /.*\/__tests__\/.*/
];

PS আমি বেশ কয়েকটি প্রকল্পে একই পরিস্থিতির মুখোমুখি হয়েছি তাই ভেবেছি এটি ভাগ করে নেওয়া কারও পক্ষে সহায়তা করতে পারে।

সম্পাদন করা

@বেলট্রোনের মন্তব্য অনুসারে ফাইলটি এখানে উপস্থিত থাকতে পারে,

node_modules \ মেট্রো \ src \ blacklist.js


1
সাহায্য করেছে, তবে আমার ৩ init০ ডিগ্রির ফাইলটি এতে রয়েছে MyProject\node_modules\metro\src\blacklist.js। চিয়ার্স।
বেলট্রোন

4

আমারও একই সমস্যা হয়েছে।

"ত্রুটি অবৈধ রেগুলার এক্সপ্রেশন: / (। \ রাজধানী । \ | node_modules [\] প্রতিক্রিয়া [\] Dist [\]। | ওয়েবসাইট \ node_modules \। | heapCapture \ bundle.js |। \ পরীক্ষার \। ) $ /: অসমাপ্ত চরিত্র শ্রেণি। "

এর মধ্যে নিয়মিত ভাবটি পরিবর্তন করুন \node_modules\metro-config\src\defaults\blacklist.js

থেকে

var sharedBlacklist = [
  /node_modules[/\\]react[/\\]dist[/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

প্রতি

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

এই পরিবর্তনটি আমার ত্রুটিটি সমাধান করেছে।


3

https://github.com/facebook/metro/issues/453

যারা এখনও সরকারী প্যাচ ছাড়াই এই ত্রুটিটি পাবেন দেশীয়, এক্সপোতে act

সুতা ব্যবহার করুন এবং এই সেটিংটি প্যাকেজ.জসনে যুক্ত করুন

{
  ...
  "resolutions": {
    "metro-config": "bluelovers/metro-config-hotfix-0.56.x"
  },
 ...

2

যাও

\ Node_modules \ মেট্রো-কনফিগ \ src \ অক্ষমতা \ blacklist.js

এবং এটি প্রতিস্থাপন

var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];

প্রতি

var sharedBlacklist = [
/node_modules[\/\\]react[\/\\]dist[\/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];

এটি সেরা অনুশীলন নয় এবং আমার প্রস্তাবটি হ'ল: নোড সংস্করণটিকে 12.9 এ ডাউনগ্রেড করুন বা মেট্রো-কনফিগার আপডেট করুন যেহেতু তারা নোড সমস্যা সমাধান করছেন।


1

আপনি যেতে পারেন...

ode নোড_মডিউলস \ মেট্রো-কনফিগারেশন \ এসআরসি \ ডিফল্ট \ ব্ল্যাকলিস্ট.জেস এবং পরিবর্তন ...

var sharedBlacklist = [   /node_modules[/\\]react[/\\]dist[/\\].*/,  
/website\/node_modules\/.*/,   /heapCapture\/bundle\.js/,  
/.*\/__tests__\/.*/ ];

এর জন্য:

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

0

একটি সাধারণ নিয়ম হিসাবে, আমি node_modules/পরের ক্লিন, বিল্ড বা আপডেটের ফলে ফাইলগুলিকে (বা কোনও ভাণ্ডারের অংশ হিসাবে প্রতিশ্রুতিবদ্ধ হয় না) এর মধ্যে ফাইলগুলি সংশোধন করি না them আমি অবশ্যই অতীতে এটি করেছি এবং এটি আমাকে কয়েকবার কামড় দিয়েছে। তবে metro-configআপডেট না হওয়া পর্যন্ত এটি স্বল্প-মেয়াদী / স্থানীয় ডেভ ফিক্স হিসাবে কাজ করে ।

ধন্যবাদ!


0

আমি দেখতে পেয়েছি রেজিএক্সএক্স.সোর্স থেকে পরিবর্তিত হয়েছে node v12.11.0, সম্ভবত নতুন v8ইঞ্জিন হয়েছে। https://github.com/nodejs/node/releases/tag/v12.11.0 এ আরও দেখুন ।

D:\code\react-native>nvm use 12.10.0
Now using node v12.10.0 (64-bit)

D:\code\react-native>node
Welcome to Node.js v12.10.0.
Type ".help" for more information.
> /node_modules[/\\]react[/\\]dist[/\\].*/.source
'node_modules[\\/\\\\]react[\\/\\\\]dist[\\/\\\\].*'
> /node_modules[/\\]react[/\\]dist[/\\].*/.source.replace(/\//g, path.sep)
'node_modules[\\\\\\\\]react[\\\\\\\\]dist[\\\\\\\\].*'
>
(To exit, press ^C again or ^D or type .exit)
>

D:\code\react-native>nvm use 12.11.0
Now using node v12.11.0 (64-bit)

D:\code\react-native>node
Welcome to Node.js v12.11.0.
Type ".help" for more information.
> /node_modules[/\\]react[/\\]dist[/\\].*/.source
'node_modules[/\\\\]react[/\\\\]dist[/\\\\].*'
> /node_modules[/\\]react[/\\]dist[/\\].*/.source.replace(/\//g, path.sep)
'node_modules[\\\\\\]react[\\\\\\]dist[\\\\\\].*'
>
(To exit, press ^C again or ^D or type .exit)
>

D:\code\react-native>nvm use 12.13.0
Now using node v12.13.0 (64-bit)

D:\code\react-native>node
Welcome to Node.js v12.13.0.
Type ".help" for more information.
> /node_modules[/\\]react[/\\]dist[/\\].*/.source
'node_modules[/\\\\]react[/\\\\]dist[/\\\\].*'
> /node_modules[/\\]react[/\\]dist[/\\].*/.source.replace(/\//g, path.sep)
'node_modules[\\\\\\]react[\\\\\\]dist[\\\\\\].*'
>
(To exit, press ^C again or ^D or type .exit)
>

D:\code\react-native>nvm use 13.3.0
Now using node v13.3.0 (64-bit)

D:\code\react-native>node
Welcome to Node.js v13.3.0.
Type ".help" for more information.
> /node_modules[/\\]react[/\\]dist[/\\].*/.source
'node_modules[/\\\\]react[/\\\\]dist[/\\\\].*'
> /node_modules[/\\]react[/\\]dist[/\\].*/.source.replace(/\//g, path.sep)
'node_modules[\\\\\\]react[\\\\\\]dist[\\\\\\].*'
>

0

সর্বশেষতম সংস্করণটির মেট্রো-কনফিগার ইনস্টল করে এটি ঠিক করুন (এখনকার জন্য 0.57.0) তারা সমস্যাটি সমাধান করেছেন:

এনপিএম মেট্রো-কনফিগার ইনস্টল

নেটিভ লোকেরা মডিউলের সংস্করণগুলি আপডেট করার পরে, আপনি এটি পরে মুছে ফেলতে পারেন


এটা আমার কোন উপকারে আসে না
ভেলিজার অন্দ্রিভ কিতানোভ

0

সুতার ব্যবহার এই পরিস্থিতি রোধ করে। সুতা ব্যবহার করা উচিত


0

উইন্ডোজ 10 এ আমি লিনাক্স ব্যাশ শেলটি ইনস্টল করার জন্য সুপারিশ করি।

এটি সেট আপ করার জন্য এখানে একটি দুর্দান্ত গাইড: https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/

কেবল পদক্ষেপগুলি অনুসরণ করুন, আপনার লিনাক্স বিতরণটি চয়ন করুন এবং স্পষ্টত অস্থিতিশীলতার পরে সেন্টিমিডে নোডের সাথে কাজ করা যতটা সম্ভব এড়ানো উচিত।

মাইক্রোসফ্ট উইন্ডোজ সফ্টওয়্যার দিয়ে লিনাক্স ফাইল যুক্ত বা সংশোধন করার বিরুদ্ধে কঠোরভাবে সতর্ক করে, এখানে বর্ণিত হিসাবে: howtogeek.com/261383/how-to-access-your-ubuntu-bash-files-in-windows-and-your-windows- সিস্টেম-ড্রাইভ-ইন-ব্যাশ /

আশা করি এটা সাহায্য করবে!


0

আমার কাছে কেবল প্যাকেজ.জেসন আপডেট হয়েছে যা থেকে পরিবর্তন করতে হবে

"react-native": "https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz"

প্রতি

"react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz"

দেখে মনে হচ্ছে সমস্যাটি এসডকে -৩ 36 এ হবে না !!

আমার নোড সংস্করণটি v12.16.0 এবং ওস win10


0

সমাধানটি সহজ তবে অস্থায়ী ...

নোট করুন যে আপনি যদি একটি চালনা করেন npm installবা yarn installআপনার কোডটি আবার পরিবর্তন করতে হবে!

সুতরাং, আমরা কীভাবে এটি স্বয়ংক্রিয়ভাবে চালাতে পারি?

স্থায়ী সমাধান

আপনার নোড মডিউলগুলি ইনস্টল করার পরে এটি "স্বয়ংক্রিয়ভাবে" করতে, আপনি ব্যবহার করতে পারেন patch-package

  1. metro-configত্রুটিটি সমাধান করে ফাইলটি ঠিক করুন :

ফাইলটি উপস্থিত হয় \node_modules\metro-config\src\defaults\blacklist.js

থেকে সম্পাদনা করুন:

var sharedBlacklist = [
  /node_modules[/\\]react[/\\]dist[/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];

প্রতি:

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];
  1. তারপরে, একটি স্থায়ী প্যাচ ফাইল তৈরি করুন:

npx patch-package metro-config

  1. আপনার package.jsonট্রিগার প্যাচ:
"scripts": {
+  "postinstall": "npx patch-package"
}

সব শেষ! এখন এই প্যাচ প্রতি npm install/ এ তৈরি করা হবেyarn install

ধন্যবাদ https://github.com/ds300/patch-package

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.