আমি দেখছি এগুলির একটিতে দুটি পৃথক প্রশ্ন। আমি উভয় উত্তর দিন।
আপনার কি রেপোতে ফাইল করা উচিত?
হ্যাঁ. Ckuijjer এর উত্তরে উল্লিখিত হিসাবে এই ফাইলটি রেপোতে অন্তর্ভুক্ত করার জন্য মাইগ্রেশন গাইডে সুপারিশ করা হয়। আপনার এটি কেন করা দরকার তা বুঝতে পড়ুন ।
কী yarn.lock?
এটি এমন একটি ফাইল যা প্রতিটি প্যাকেজের জন্য চেকসামের সাথে আপনার প্রকল্পের সঠিক নির্ভরতা সংস্করণগুলি সঞ্চয় করে। এটি আপনার নির্ভরতার জন্য ধারাবাহিকতা সরবরাহ করার সুতার উপায় way
এই ফাইলটি কেন প্রয়োজন তা বোঝার জন্য আপনাকে প্রথমে বুঝতে হবে মূল এনপিএম এর পিছনে কী সমস্যা ছিল package.json। আপনি যখন প্যাকেজটি ইনস্টল করবেন, এনপিএম একটি নির্দিষ্ট সংশোধন (সেমভার) এর পরিবর্তে নির্ভরতার অনুমতিপ্রাপ্ত সংশোধনগুলির সীমা সংরক্ষণ করবে। এনপিএম নির্দিষ্ট পরিসরের মধ্যে নির্ভরতার সর্বশেষতম সংস্করণ (যেমন নন-ব্রেকিং প্যাচ আপডেটগুলি) আপডেট করার চেষ্টা করবে will এই পদ্ধতির সাথে দুটি সমস্যা আছে।
নির্ভরতা লেখকরা প্যাচ সংস্করণ আপডেটগুলি প্রকাশ করতে পারে যখন বাস্তবে এমন একটি ব্রেকিং পরিবর্তন প্রবর্তন করবে যা আপনার প্রকল্পকে প্রভাবিত করবে।
npm installবিভিন্ন সময়ে চলমান দুটি বিকাশকারী নির্ভরতার বিভিন্ন সেট পেতে পারেন। যার ফলে দুটি একই পরিবেশে একটি বাগ পুনরুত্পাদনযোগ্য না হতে পারে। এটি সিআই সার্ভারগুলির উদাহরণস্বরূপ বিল্ড স্থায়িত্ব সংক্রান্ত সমস্যার কারণ হতে পারে।
অন্যদিকে সূতা সর্বাধিক পূর্বাভাসের রুট নেয়। সঠিক নির্ভরতা সংস্করণগুলি yarn.lockসংরক্ষণ করার জন্য এটি ফাইল তৈরি করে । সুতাটিতে সেই ফাইলটি থাকা থেকে সংস্করণগুলি সমাধান করার পরিবর্তে সঞ্চিত সংস্করণগুলি ব্যবহার করা হবে । এই কৌশলটি গ্যারান্টি দেয় যে উপরে বর্ণিত সমস্যাগুলির কোনওটিই ঘটবে না।yarn.lockpackage.json
yarn.lockকমান্ড npm-shrinkwrap.jsonদ্বারা তৈরি করা যেতে পারে যে অনুরূপ npm shrinkwrap। এই দুটি ফাইলের মধ্যে পার্থক্য ব্যাখ্যা করে এই উত্তরটি দেখুন ।