এনপিএম-এর মাধ্যমে সুতা কখন ব্যবহার করবেন? পার্থক্য কি?


107

সুতা এবং এনপিএম মধ্যে পার্থক্য কি ? এই প্রশ্নের লেখার সময় আমি শুধু ইন্টারনেটের দেখাচ্ছে মতো NPM কমান্ডের সুতো ছেড়ে দেওয়ার সমতুল্য কি কিছু নিবন্ধ জানতে পারেন এই

তাদের কি একই কার্যকারিতা রয়েছে (আমি জানি যে সুতা স্থানীয় ক্যাচিং করে এবং মনে হয় আপনার একবারে কেবল একবার প্যাকেজ ডাউনলোড করা দরকার) তবে এ ছাড়া এনপিএম থেকে ইয়ার্নে যাওয়ার কোনও সুবিধা আছে কি?


12
এটি কোনও খারাপ প্রশ্ন নয় এবং ডাউনওয়েটের প্রাপ্য নয়। এটি বলেছিল, এটিকে সত্যিকারের ভাল প্রশ্ন করার জন্য এটি কিছুটা ছড়িয়ে দেওয়া দরকার।
jedd.ahyoung

একটি দ্রুত গুগল আপ সক্রিয় এই । আমি বিশ্বাস করি এটি স্ট্যাকওভারফ্লোয়ের পক্ষে সম্ভবত খুব বিস্তৃত / গঠনমূলক নয় এবং যাইহোক দেখানো আরও কিছুটা গবেষণা করতে পারে।
অরোরা 10001

4
@ অররা 10001 আমি যখন অনুসন্ধান করেছি আমি চিটশিটটি দেখেছি কিন্তু এটি আমার প্রশ্নের উত্তর নয়! আমি কমান্ডের মধ্যে পার্থক্য নয়, তবে উভয়ের মধ্যে পার্থক্য জানতে চাই। দয়া করে আমার প্রশ্নটি প্রথমে পড়ুন
আশা

4
@ আশা আপনার আরও প্রশ্নাবলীর জন্য আপনার প্রশ্নটি সম্পাদনা করা উচিত এবং আপনি ইতিমধ্যে কী গবেষণা করেছেন তা প্রদর্শন করুন। আপনি কি ধরণের পার্থক্য সন্ধান করছেন? আপনি কীভাবে গ্রন্থাগারগুলি কার্যকর করা হয় তা জানার চেষ্টা করছেন? সমস্যাটি দেখার জন্য তারা কীভাবে পৃথক রয়েছে তা অনুসন্ধান করার চেষ্টা করছেন? আপনি যদি আপনার প্রশ্নটিকে আরও সুনির্দিষ্ট করেন তবে আপনি যা জিজ্ঞাসা করছেন তার উপর নির্ভর করে এটি ভাল হতে পারে। (আপনি যা জিজ্ঞাসা করছেন তার উপর নির্ভর করে তথ্য গুগলে ইতিমধ্যে উপলব্ধ হতে পারে))
jedd.ahyoung

4
মজার লোকেরা আপনাকে এটি গুগল করতে বলে; আমি আপনার প্রশ্নটি গুগলে যাচ্ছি ... স্ট্যাকওভারফ্লোতে থাকা লোকেরা অতিরিক্ত জিনিসগুলিকে নিয়ন্ত্রিত করে, যেন এটি তাদের আরও গুরুত্বপূর্ণ করে তোলে, আমার ধারণা।
jairhumberto

উত্তর:


72

আপডেট: মার্চ 2018 (কিছুটা দেরি ...)

সংস্করণ 5 থেকে, npm

  • সূক্ষ্ম package-lock.json(বা অন্য কোনও) লকিংয়ের ব্যবস্থার মতো একইভাবে আপনার পুরো নির্ভরতা গাছকে ঠিক করে দেয় এমন একটি 'লকফিল' বলে
  • একটি সরঞ্জাম তৈরি করা হয়েছে
  • --save এখন জন্য জড়িত npm i
  • আরও ভাল নেটওয়ার্ক এবং ক্যাশে ব্যবহার

এনপিএম ৫. further.০ আরওnpm ci একটানা একীকরণের পরিবেশে নির্ভরতা আরও দ্রুত ইনস্টল করার জন্য কমান্ডটি প্রবর্তন করেছে কেবলমাত্র পাওয়া প্যাকেজগুলি ইনস্টল করে package-lock.json( package-lock.jsonএবং যদি package.jsonসিঙ্ক্রোনাইজ না হয়ে থাকে তবে ত্রুটির প্রতিবেদন করা )।

ব্যক্তিগতভাবে , আমি এখনও ব্যবহার npm


আসল

ডক্স থেকে সরাসরি উদ্ধৃতি দিতে আমি ঘৃণিত, তবে তারা দুর্দান্ত কাজ করে ব্যাখ্যা কাজ কেন, সংক্ষেপে যথেষ্ট যে আমি দেখতে পাচ্ছি না কিভাবে আরও ধারনা সংক্ষেপ।

মূলত:

  1. আপনি সর্বদা জানেন যে আপনি প্রতিটি উন্নয়ন মেশিনে একই জিনিস পাচ্ছেন getting

  2. এটি অপারেশনগুলিকে প্যারালেলাইজ করে যা npmনা এবং

  3. এটি নেটওয়ার্কটির আরও দক্ষ ব্যবহার করে।

  4. এটি অন্যান্য সিস্টেম সংস্থাগুলির (যেমন র‌্যাম) আরও দক্ষ ব্যবহার করতে পারে ।

এর সাথে মানুষের উত্পাদনের অভিজ্ঞতাগুলি কী কী? কে জানে, এটি সাধারণ মানুষের জন্য শিশু an

টিএল; ইয়াহুদা কাটজ থেকে ডিআর :

গ-গো থেকে, সুতা লকফাইলে গ্যারান্টি দেওয়া হয় যে একই সংগ্রহস্থলে বারবার সুতা চালানো একই প্যাকেজগুলির ফলস্বরূপ।

দ্বিতীয়ত, সুতা শীতল ক্যাশে সহ বিশেষত উষ্ণ ক্যাশে সহ ভাল পারফরম্যান্সের চেষ্টা করে।

অবশেষে, সুতা সুরক্ষাটিকে একটি মূল মান করে তোলে।

সুন্দর ব্লগ পোস্ট

গ্যান্ট ল্যাবোর্ডের " এনপিএম বনাম সুতা চিট শীট "

প্রকল্পের থেকে সামান্য দীর্ঘ সংস্করণ :

দ্রুত: সুতা এটি ডাউনলোড করা প্রতিটি প্যাকেজকে ক্যাশে করে তাই এর আর কখনও দরকার হয় না। এটি সম্পদের ব্যবহার সর্বাধিকীকরণের জন্য ক্রিয়াকলাপগুলিকেও সমান্তরাল করে তোলে তাই ইনস্টলের সময় আগের চেয়ে দ্রুত হয় faster

নির্ভরযোগ্য: বিশদ, তবে সংক্ষিপ্ত, লকফিল ফর্ম্যাট এবং ইনস্টলগুলির জন্য একটি ডিস্টিরিস্টিক অ্যালগরিদম ব্যবহার করে সুতা গ্যারান্টি দিতে সক্ষম হয় যে একটি সিস্টেমে কাজ করা একটি ইনস্টল অন্য যে কোনও সিস্টেমে ঠিক একইভাবে কাজ করবে।

সুরক্ষিত: সুতা প্রতিটি ইনস্টল করা প্যাকেজটির কোডটি কার্যকর করার আগে তার সততা যাচাই করতে চেকসাম ব্যবহার করে।

এবং README.md থেকে :

  • অফলাইন মোড: আপনি যদি আগে কোনও প্যাকেজ ইনস্টল করেন তবে কোনও ইন্টারনেট সংযোগ ছাড়াই আপনি এটি আবার ইনস্টল করতে পারেন।
  • নির্ধারক: ইনস্টল অর্ডার নির্বিশেষে প্রতিটি মেশিনে একই নির্ভরতা একই রকমভাবে ইনস্টল করা হবে।
  • নেটওয়ার্ক পারফরম্যান্স: সুতার দক্ষতার সাথে অনুরোধগুলি সারি করুন এবং নেটওয়ার্কের ব্যবহার সর্বাধিকীকরণের জন্য অনুরোধ জলপ্রপাতগুলি এড়ানো হবে।
  • একাধিক নিবন্ধসমূহ: এনপিএম বা বোভার থেকে যে কোনও প্যাকেজ ইনস্টল করুন এবং আপনার প্যাকেজটির কর্মপ্রবাহ একই রাখুন।
  • নেটওয়ার্ক স্থিতিস্থাপকতা: একটি একক অনুরোধ ব্যর্থ হওয়ার কারণে কোনও ইনস্টল ব্যর্থ হবে না। অনুরোধ ব্যর্থতার পরে পুনরায় চেষ্টা করা হয়।
  • ফ্ল্যাট মোড: সদৃশ তৈরি এড়াতে একক সংস্করণে নির্ভরতার অনাদায়ী সংস্করণগুলি সমাধান করুন।
  • আরও ইমোজি। 🐈

আপনি কি আমাকে বলতে পারেন যে সূতা এনপিএম ভি 3 এর মতো নির্ভরতা রেজোলিউশন করে ? আমি বুঝতে পারি যে এমন একটি --flatবিকল্প রয়েছে যা বাস্তব ফ্ল্যাট কাঠামোকে বাধ্য করে যেখানে প্রতিটি নির্ভরতার কেবল একটি সংস্করণ ইনস্টল করার অনুমতি দেওয়া হয়, তবে এর উপর ডিফল্ট আচরণ কী? ধন্যবাদ
দিমিত্রিস কারাগিনিস

4
আরও ইমোজি: বিড়াল:
হুয়েই টান

7
দুর্দান্ত উত্তর। আমি ভাবছি যদি তারা এনটিএম-তে অবদান রাখার চেষ্টা করেছিল নামকরণ এবং নাম পরিবর্তন এবং সিনট্যাক্স পরিবর্তন করার আগে install -g
গার্ডনার বিকফোর্ড


3

পিএনপিএম কী?

pnpmমডিউলের একটি সংস্করণ কেবল একবার ডিস্কে একবারে সংরক্ষণ করতে হার্ড লিঙ্ক এবং সিমলিংক ব্যবহার করে। উদাহরণস্বরূপ এনপিএম বা সুতা ব্যবহার করার সময়, আপনার যদি লডাশের একই সংস্করণ ব্যবহার করে 100 টি প্রকল্প থাকে তবে আপনার ডিস্কে লোডাশের 100 কপি থাকবে। পিএনএম-এর সাহায্যে লোডাশ ডিস্কের এক জায়গায় সংরক্ষণ করা হবে এবং একটি হার্ড লিঙ্কটি নোড_মডিউলগুলিতে স্থাপন করা হবে যেখানে এটি ইনস্টল করা উচিত।

ফলস্বরূপ, আপনি আপনার ডিস্কে গিগাবাইটের স্থান সংরক্ষণ করেন এবং আপনার কাছে আরও দ্রুত ইনস্টলেশন রয়েছে! আপনি যদি পিএনপিএম তৈরি করে এবং কেন নোড.জেএস বাস্তুতন্ত্রের সাথে এটি সূক্ষ্মভাবে কাজ করে সেই অনন্য নোড_মডিউলগুলি সম্পর্কে আরও বিশদ জানতে চাইলে এই ছোট্ট নিবন্ধটি পড়ুন: আমাদের পিএনএম ব্যবহার করা উচিত কেন?

কীভাবে পিএনপিএম ইনস্টল করবেন?

npm install -g pnpm

কীভাবে পিএনপিএম ব্যবহার করে এনপিএম প্যাকেজ ইনস্টল করবেন?

pnpm install -g typescript // or your desired package

PNPMওভার Yarnএবং এর উপকারিতাNPM

এখানে দেখানো ইনস্টলেশনের সময় গৃহীত উন্নতি-বার NPM, YARNএবং PNPM(খাটো-বার উত্তম) এখানে চিত্র বর্ণনা লিখুন

সম্পূর্ণ চেক বেঞ্চমার্কের জন্য ক্লিক করুন

আরও তথ্যের জন্য, https://www.npmjs.com/package/pnpm দেখুন


2

এনপিএম :

  1. জাভাস্ক্রিপ্টের জন্য প্যাকেজ পরিচালক। এনপিএম হল এনপিএম ইকোসিস্টেমের কমান্ড-লাইন ইন্টারফেস। এটি যুদ্ধ-পরীক্ষিত, আশ্চর্যজনকভাবে নমনীয় এবং প্রতিদিন কয়েক হাজার কয়েক হাজার জাভাস্ক্রিপ্ট বিকাশকারী ব্যবহার করে।
  2. এনপিএম একটি সঠিক লক ফাইল তৈরি করে যেখানে একটি সুতা লক ফাইলটি কিছু ক্ষেত্রে দুর্নীতিগ্রস্থ হতে পারে এবং সুতা-সরঞ্জামগুলি দিয়ে এটি ঠিক করতে হয়েছিল has

সুতা :

  1. জাভাস্ক্রিপ্টের জন্য একটি নতুন প্যাকেজ পরিচালক। সুতা এটি ডাউনলোড করা প্রতিটি প্যাকেজকে ক্যাশে করে তাই এর আর কখনও দরকার নেই। এটি সম্পদের ব্যবহার সর্বাধিকীকরণের জন্য ক্রিয়াকলাপগুলিকেও সমান্তরাল করে তোলে তাই ইনস্টলের সময় আগের চেয়ে দ্রুত হয় faster
  2. সুতা কোনও পাসওয়ার্ড দিয়ে লগইন সমর্থন করে না (এনপিএম করার সময়)

4
কি ধরনের লগইন?
ধনী পাথর

1

আপনি যখন সুতা ব্যবহার করে কোনও প্যাকেজ ইনস্টল করেন (সুতা যুক্ত প্যাকেজটির নাম ব্যবহার করে), এটি আপনার ডিস্কে প্যাকেজটি রাখে । পরবর্তী ইনস্টলের সময়, এই প্যাকেজটি রেজিস্ট্রি থেকে টার্বল পাওয়ার জন্য এইচটিটিপি অনুরোধ প্রেরণের পরিবর্তে ব্যবহার করা হবে।

সুতা আসে একটি কার্যকর লাইসেন্স চেকার সঙ্গে , যা আপনি নির্ভর করে এমন সমস্ত মডিউলগুলির লাইসেন্স আপনাকে পরীক্ষা করতে হবে এমন ক্ষেত্রে সত্যই শক্তিশালী হয়ে উঠতে পারে।

আপনি যদি মালিকানাধীন সফ্টওয়্যারটিতে কাজ করে থাকেন তবে আপনি কোনটি ব্যবহার করবেন তা আসলে কিছু যায় আসে না। এনপিএম সহ, আপনি এনএমপি-সঙ্কিঙ্ক্র্যাপ.জেএস ব্যবহার করতে পারেন, এবং আপনি সুতোর সাথে সুতা.লক ব্যবহার করতে পারেন।

আরও তথ্যের জন্য নীচের ব্লগটি পড়ুন

https://blog.risingstack.com/yarn-vs-npm-node-js-package-managers/


1

নতুনদের জন্য আরও ভাল ওভারভিউ দেওয়ার চেষ্টা করছি।

এনএমপি হ'ল historতিহাসিকভাবে (২০১০) জাভাস্ক্রিপ্টের জন্য সর্বাধিক জনপ্রিয় প্যাকেজ ম্যানেজার। আপনি যদি এটি আপনার প্রকল্পের নির্ভরতা পরিচালনার জন্য ব্যবহার করতে চান তবে আপনি নিম্নলিখিত আদেশটি টাইপ করতে পারেন:

npm init

এটি একটি package.jsonফাইল তৈরি করবে । এতে প্রকল্পের সমস্ত নির্ভরতা রয়েছে।

তারপরে

npm install

একটি ডিরেক্টরি তৈরি করে node_modulesএবং এর মধ্যে নির্ভরতাগুলি (যে আপনি package.jsonফাইলটিতে যুক্ত করেছেন) ডাউনলোড করবেন ।

এটি একটি package-lock.jsonফাইলও তৈরি করবে । এই ফাইলটি নির্ভরযোগ্য গাছগুলির বর্ণনা করতে ব্যবহৃত হয়েছিল যা উত্পন্ন হয়েছিল। এটি বিকাশকারীদের একই রকম নির্ভরতাগুলি ইনস্টল করার অনুমতি দেয়। উদাহরণস্বরূপ, আপনি কোনও ডেভেলপার ভিএ 2 এবং তারপরে ভি 3 এর নির্ভরতা আপগ্রেড করতে পারবেন এবং অন্য একজন সরাসরি ভি 3-তে আপগ্রেড করতে পারবেন।

এনপিএম অ- নিরঙ্কুশভাবে উপায়ে নির্ভরতা ইনস্টল করে যার অর্থ এই যে দুটি বিকাশকারী আলাদা আলাদা আচরণেরnode_modules ফলে পৃথক ডিরেক্টরি থাকতে পারে । ** এনপিএম খারাপ খ্যাতিতে ভুগেছে যেমন ফেব্রুয়ারী 2018 এর উদাহরণস্বরূপ: সংস্করণ 5.7.0 সংস্করণে একটি সমস্যা আবিষ্কার হয়েছিল যাতে লিনাক্স সিস্টেমে সুডো এনপিএম চালিয়ে যাওয়া সিস্টেম ফাইলগুলির মালিকানা পরিবর্তন করবে এবং স্থায়ীভাবে অপারেটিং সিস্টেমটি ভেঙে দেবে।

যারা সমস্যার এবং অন্যদের সমাধান করতে, ফেসবুক একটি নতুন প্যাকেজ ম্যানেজার চালু : (2016) সুতো একটি দ্রুততর, আরো নিরাপদে, এবং আরও নির্ভরযোগ্যভাবে ম্যানেজার জাভাস্ক্রিপ্ট প্যাকেজ।

আপনি টাইপ করে কোনও প্রকল্পে সুতা যোগ করতে পারেন :

yarn init

এটি একটি package.jsonফাইল তৈরি করবে । তারপরে, নির্ভরতাগুলি এর সাথে ইনস্টল করুন:

yarn install

একটি ফোল্ডার node_modulesতৈরি করা হবে। সুতা কল করা একটি ফাইল তৈরি করবে yarn.lock। এই ফাইলটি একই উদ্দেশ্যে কাজ করে package-lock.jsonতবে এটির পরিবর্তে একটি নির্জনবাদী এবং নির্ভরযোগ্য অ্যালগরিদম ব্যবহার করে তৈরি করা হয় যার ফলে সংশ্লেষক বিল্ডগুলি তৈরি হয়।

আপনার সাথে একটি প্রকল্প শুরু হলে npm , আপনি আসলে মাইগ্রেট করতে পারবেন সুতো সহজে। সুতা একই গ্রহণ করা হবে package.json। দেখুন npm থেকে মাইগ্রেট আরো বিস্তারিত জানার জন্য।

তবে প্রতিটি নতুন রিলিজের সাথে এনপিএম উন্নত করা হয়েছে এবং কিছু প্রকল্প এখনও সুতার ওপরে এনপিএম ব্যবহার করে ।


1

@ এমএসফোর্ডের উত্তর প্রায় সবকিছুর উপরে .াকা পড়েছে, তবে আমি সুরক্ষা (ওডাব্লুএএসপি-এর জ্ঞাত ক্ষতিগ্রস্থতা) অংশটি অনুপস্থিত।

সুতা

আপনি তাদের ব্যবহার করে পরীক্ষা করতে পারেন yarn audit, তবে আপনি এগুলি ঠিক করতে পারবেন না। এটি এখনও গিটহাবের একটি মুক্ত সমস্যা ( https://github.com/yarnpkg/yarn/issues/7075 )।

এনপিএম

আপনি ব্যবহার করতে পারেন npm audit fix, যার মধ্যে কয়েকটি আপনি নিজের দ্বারা ঠিক করতে পারেন।

তাদের উভয়ই, যেমন npm audit& এর yarn auditনিজস্ব ক্রমাগত একীকরণ সরঞ্জাম রয়েছে। এগুলি যথাক্রমে https://github.com/IBM/audit-ci (ব্যবহৃত, দুর্দান্ত কাজ করে!) এবং https://yarnpkg.com/package/audit-ci (ব্যবহৃত হয়নি)।

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