node.js - tutorial - একটি নির্দিষ্ট সংস্করণে গিট থেকে npm ইনস্টল



node js download (5)

আপনি যদি একাধিক মডিউল দিয়ে এটি করছেন এবং সংস্করণগুলিতে আরো নিয়ন্ত্রণ করতে চান তবে আপনার নিজস্ব ব্যক্তিগত এনপিএম রেজিস্ট্রি থাকা উচিত।

এই ভাবে আপনি npm আপনার ব্যক্তিগত npm রেজিস্ট্রিতে আপনার মডিউলগুলি প্রকাশ করতে এবং প্যাকেজ.জসন এন্ট্রিগুলি ব্যবহার করতে পারেন যা আপনি পাবলিক মডিউলগুলির জন্য একইভাবে ব্যবহার করতে পারেন।

dependency

আমি Node.js এর জন্য একটি মডিউল লিখেছি, যা আমি ব্যক্তিগত রাখতে চাই। আমি জানি যে আমি লাইন যোগ করতে পারি (উচিত):

"private": "true"

package.json ফাইলটিতে, এবং আমিও জানি যে আমি এই মডিউলটিকে ফাইল সিস্টেম পাথ ব্যবহার করে বা গিটহাব সহ একটি গিট রেপোজিটরির একটি লিঙ্ক ব্যবহার করে npm install করতে পারি।

আমি এটাও জানি যে আমি package.json এমন একটি ফাইল সিস্টেম পাথ বা একটি গিট রেপোর লিঙ্ক যুক্ত করতে package.json , যাতে dependencies অংশটি কিছুটা দেখতে পারে:

"dependencies": {
  "myprivatemodule": "[email protected]:..."
}

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

তাই আমার প্রশ্ন হল: যে কোনও সংস্করণ নম্বরটি যেভাবে উল্লেখ করা সম্ভব এবং এনপিএমটি এই সংস্করণটি সহ সর্বশেষ কমিটির জন্য গিট রিপোজিটরিটি অনুসন্ধান করা সম্ভব?

যদি না হয়, আপনি কিভাবে আপনার প্রকল্পে এই সমস্যা সমাধান করবেন? আপনি কমিটি আইডি সঙ্গে বসবাস না বা এই একটি ভাল সমাধান আছে?


Answer #1

আমার উদাহরন @ @ বাইটাইট above মন্তব্য করা হয়েছে, তাই এখানে এমন কিছু যা পড়তে সহজ ...

above বর্ণিত পদ্ধতি @ সূর্যজিকাল শাখা কমিটির জন্য কাজ করে, কিন্তু এটি এমন একটি গাছের জন্য কাজ করে না যা আমি অন্তর্ভুক্ত করার চেষ্টা করছিলাম।

সংরক্ষণাগার মোড commits জন্য কাজ করে। উদাহরণস্বরূপ, fetch @ a2fbf83

npm :

npm install  https://github.com/github/fetch/archive/a2fbf834773b8dc20eef83bb53d081863d3fc87f.tar.gz

সুতা :

yarn add  https://github.com/github/fetch/archive/a2fbf834773b8dc20eef83bb53d081863d3fc87f.tar.gz

বিন্যাস :

 https://github.com/<owner>/<repo>/archive/<commit-id>.tar.gz

গাছের জন্য এখানে ক্লিক করুন যাতে /archive/ মোড প্রয়োজন:

yarn add  https://github.com/vuejs/vuex/archive/c3626f779b8ea902789dd1c4417cb7d7ef09b557.tar.gz

সম্পর্কিত vuex কমিটির জন্য


Answer #2

এই কমান্ডটি নির্দিষ্ট git commit থেকে npm প্যাকেজ username/package ইনস্টল করে:

npm install https://github.com/username/package#3d0a21cc

এখানে 3d0a21cc প্রতিশ্রুতি হ্যাশ প্রথম 8 অক্ষর।


Answer #3

একটি dependency শুধুমাত্র dependency ইনস্টল করার জন্য registry থেকে পাওয়া থাকতে হবে।

আপনার প্রকল্পগুলি জনসাধারণের সাথে ভাগ করা উচিত নয় যদি আপনি অবশ্যই অবশ্যই তৈরি এবং আপনার নিজস্ব রেজিস্ট্রি ব্যবহার করতে পারেন registry.npmjs.org

কিন্তু, যদি এটি একটি রেজিস্ট্রি না হয়, তবে এটি URL বা গিট URL দ্বারা উল্লেখ করতে হবে। গিট ইউআরএল সহ একটি সংস্করণ উল্লেখ করতে, একটি URL টুকরা হিসাবে শেষে একটি উপযুক্ত <commit-ish> , যেমন একটি ট্যাগ অন্তর্ভুক্ত করুন।

উদাহরণ, 0.3.1 নামের একটি ট্যাগের জন্য:

"dependencies": {
  "myprivatemodule": "[email protected]:...#0.3.1"
}

দ্রষ্টব্য : উপরের স্নিপেটটি বেস URL টি একই প্রশ্নে পোস্ট করা একই রকম দেখায়।

স্খলিত অংশ ( ... ) পূরণ করা উচিত:

"myprivatemodule": "[email protected]:{owner}/{project}.git#0.3.1"

এবং, এসএসএইচ অ্যাক্সেস উপলব্ধ না হলে একটি ভিন্ন ঠিকানা বিন্যাস প্রয়োজন হবে:

"myprivatemodule": "git://github.com/{owner}/{project}.git#0.3.1"

আপনার OS এর উপর নির্ভর করে, আপনি অন্য ফোল্ডারে নির্ভরতাটি link করতে সক্ষম হবেন যেখানে আপনি এটি Github থেকে ক্লোন করেছেন।


Answer #4

সংস্করণ দ্বারা আপনি একটি ট্যাগ বা একটি রিলিজ মানে, তারপর github তাদের জন্য ডাউনলোড লিঙ্ক উপলব্ধ করা হয়। উদাহরণস্বরূপ, যদি আমি fetch সংস্করণ 0.3.2 ইনস্টল করতে চাই (এটি npm তে উপলব্ধ না হয়), তাহলে আমি আমার package.json dependencies অধীনে যুক্ত করি:

"fetch": "https://github.com/github/fetch/archive/v0.3.2.tar.gz",

সংঘটিত হ্যাশ পদ্ধতির সাথে তুলনা করলে কেবলমাত্র অসুবিধা হ'ল হ্যাশের পরিবর্তিত কোড প্রতিনিধিত্ব করার নিশ্চয়তা দেওয়া হয়, তবে একটি ট্যাগ প্রতিস্থাপিত হতে পারে। সৌভাগ্যক্রমে এই কদাচিৎ ঘটে।

হালনাগাদ:

এইদিন আমি যে পদ্ধতিটি ব্যবহার করি সেটি হ'ল গিটহাব পরিসেবা নির্ভরতার জন্য কম্প্যাক্ট নোটেশন:

"dependencies": {
  "package": "github:username/package#commit"
}

যেখানে কমিটি একটি ট্যাগ মত প্রতিশ্রুতিবদ্ধ হতে পারে। GitHub এর ক্ষেত্রে আপনি এমনকি প্রাথমিক github: ড্রপ করতে পারেন github: এটি ডিফল্ট।





npm