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


869

গিথুব থেকে মডিউলগুলি ইনস্টল করার চেষ্টা করছে ফলাফল:

প্যাকেজ.জসনে গুরুত্বপূর্ণ ত্রুটি।

এক্সপ্রেস ব্যবহার করে সহজেই পুনরুত্পাদন করা:

npm install https://github.com/visionmedia/express ত্রুটি নিক্ষেপ

npm install express কাজ করে।

আমি গিথুব থেকে ইনস্টল করতে পারি না কেন?

কনসোল আউটপুট এখানে:

npm http GET https://github.com/visionmedia/express.git
npm http 200 https://github.com/visionmedia/express.git
npm ERR! not a package /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/tmp.tgz
npm ERR! Error: ENOENT, open '/home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 3.8.0-23-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "https://github.com/visionmedia/express.git"
npm ERR! cwd /home/guym/dev_env/projects_GIT/proj/somename
npm ERR! node -v v0.10.10
npm ERR! npm -v 1.2.25
npm ERR! path /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/guym/dev_env/projects_GIT/proj/somename/npm-debug.log
npm ERR! not ok code 0

1
কেউ কি প্যাকেজটি দিতে পারেন?
আদম

1
@Adam আপনি যোগ করতে পারেন "express": "github:visionmedia/express"করতে "dependencies"বিভাগে package.json file: তারপর চালানো npm install(নীচে উল্লিখিত হিসাবে)
ড্যানি

@ উদ্যান, এটি আমার পক্ষে কাজ করে না। আমি ভাবছি এটি সক্ষম করার জন্য that এক্সপ্রেস রেপোতে কোনও ডিস ফোল্ডার ছিল কিনা।
ml242

উত্তর:


1156

কারণ https://github.com/visionmedia/expressকোনও ওয়েব পৃষ্ঠার ইউআরএল এবং এনপিএম মডিউল নয়। এই গন্ধ ব্যবহার করুন:

git+https://git@github.com/visionmedia/express.git

বা যদি আপনার এসএসএইচ প্রয়োজন হয় তবে এই গন্ধটি:

git+ssh://git@github.com/visionmedia/express.git

86
আপনি git+https://github.com/visionmedia/express.gitssh এর পরিবর্তে https ব্যবহার করতে পারেন।
স্টিভ উইলকক

43
মনে রাখবেন যে, সংগ্রহস্থলের আপনি ইনস্টল করার জন্য একটি হওয়া আবশ্যক চান npm মডিউল , এটি একটি থাকা আবশ্যক package.jsonফাইল বা অন্য এই ত্রুটি পাবেন: Error: ENOENT, open 'tmp.tgz-unpack/package.json'
গ্যাবলেউক্স

20
আমি যদি একটি নির্দিষ্ট শাখা চাই
কিলিঙ্ক

3
আমি আপাতত যে সমস্যার সমাধান মনে করি তা হ'ল ... / এক্সপ্রেসটাইট # কমিটের সাথে প্রতিশ্রুতি নির্দিষ্ট করা
গ্যাস্টন সানচেজ

39
ওয়ার্থ বলার অপেক্ষা রাখে না যে আপনার অব্যাহতি প্রয়োজন হতে পারে #শেল, IE থেকে একটি নির্দিষ্ট শাখা ব্যবহার করার জন্য:npm install git+https://github.com/user/repo.git\#branch
mor লেহন

655

আপনি npm install visionmedia/expressগিথুব থেকে ইনস্টল করতেও করতে পারেন

অথবা

npm install visionmedia/express#branch

সরাসরি গিস্ট, বিটবকেট, গিটল্যাব এবং অন্যান্য বেশ কয়েকটি বিশেষায়িত ফর্ম্যাট থেকে ইনস্টল করার জন্য সমর্থন রয়েছে। তাদের সবার জন্য npm install ডকুমেন্টেশন দেখুন ।


19
ইউআরএল নির্দিষ্ট না করে কী? আপনি কী স্বাদযুক্ত হোস্টিং পরিষেবা ব্যবহার করছেন তা এনপিএম কীভাবে জানতে পারে?
জেক রেসন

22
@ জ্যাক রেসন: এটি সম্ভব সংস্করণ 1.1.65 থেকে এবং এটি github.comকেবলমাত্র কাজ করে ।
এজেজ

5
উইন্ডোজে আমার পক্ষে কাজ করেনি - এটি আমার বর্তমান ডিরেক্টরিটির একটি সাবফোল্ডার থেকে ইনস্টল করার চেষ্টা করেছিল।
জারোদ মোসেন

7
নোট করুন এটি বিশ্বব্যাপী ইনস্টলগুলিতে (যেমন এনপিএম আই রেপো / পিকেজি
জি

1
@ user3751385 গ্লোবাল ইনস্টলগুলি এনপিএম 3.3.8 এ কাজ করছে বলে মনে হচ্ছে।
XåpplI'-I0llwlg'I -

170

যদি গিট ইনস্টল করা না থাকে তবে আমরা চেষ্টা করতে পারি

npm install --save https://github.com/Amitesh/gulp-rev-all/tarball/master

10
দুর্দান্ত উত্তর! এটি আমার পক্ষে কাজ করেছিল যখন অন্যান্য কমান্ডগুলি (অন্যান্য উত্তর থেকে) কিছু গিট আনার যুক্তিতে আটকে থাকে।
ড্যানিয়েল কুমাক

2
আপনি এর জায়গায় ট্যাগের নামও ব্যবহার করতে পারেন master। সম্ভবত এটি নিরাপদে করুন।
এমপেন

4
আপনি যখন শাখাগুলি নিয়ে কাজ করছেন তখন খুব ভাল লাগছে, আপনার একটি সাধারণ বিন্যাসের উত্তর অন্তর্ভুক্ত করার জন্য আপনার উত্তরটি পরিবর্তন করা উচিত, আমি /tarball/প্রথমে লক্ষ্য করিনি
Lu রোমান

2
ডকারের ধারক থেকে নির্ভরতা ইনস্টল করার সময় এটিই আমার পক্ষে একমাত্র উত্তর।
Fela Maslen

1
এটি সম্পূর্ণ রেপো ডাউনলোড করার প্রয়োজন না হওয়ার জন্যও উপযুক্ত। ধন্যবাদ!
সোমবার

58

সেপ্টেম্বর 2016 আপডেট করুন

ভ্যানিলা https গিথব ইউআরএল থেকে ইনস্টল করা এখন কাজ করে:

npm install https://github.com/fergiemcdowall/search-index.git

সম্পাদনা 1: বেশ কয়েকজন ব্যবহারকারী মন্তব্য করছেন যে আপনি সমস্ত মডিউলগুলির জন্য এটি করতে পারবেন না কারণ আপনি উত্স নিয়ন্ত্রণ ব্যবস্থা থেকে পড়াচ্ছেন, এতে অবৈধ / বিযুক্ত / বগি কোড থাকতে পারে। সুতরাং পরিষ্কার হতে (যদিও এটি বলা ছাড়াই উচিত): রেপোর কোডটি এনপিএম-ব্যবহারযোগ্য অবস্থায় রয়েছে , আপনি এখন বেশ খুশিতে সরাসরি গিথুব থেকে সরাসরি ইনস্টল করতে পারেন

সম্পাদনা 2: (21-10-2019) আমরা এখন "শিখর টাইপসক্রিপ্ট / প্রতিক্রিয়া / ব্যাবেল" এর মাধ্যমে বাস করছি এবং তাই জাভাস্ক্রিপ্ট সংকলনটি বেশ সাধারণ হয়ে উঠেছে। আপনার যদি সংকলনটি অ্যাকাউন্টে নেওয়া দরকার তবে তা দেখুন prepare। এটি বলেছিল, এনপিএম মডিউলগুলি সংকলনের দরকার নেই , এবং এটি ধরে নেওয়া বুদ্ধিমানের যে সংকলনটি ডিফল্ট নয়, বিশেষত পুরানো নোড মডিউলগুলির জন্য (এবং সম্ভবত খুব নতুন, রক্তপাতের প্রান্তের "ESNext" -তাদের জন্যও)।


9
রেপোতে কোনও distফোল্ডার অন্তর্ভুক্ত না থাকলে এবং বেশিরভাগ না করে আপনি তার গিটহাব উত্স থেকে যে কোনও এনপিএম প্যাকেজটি ইনস্টল করতে পারবেন না। আমি যে ইস্যুটির সাথে লিঙ্ক করেছি এটি একটি এনপিএম বাগ - prebuildগিটহাব থেকে ইনস্টল করার সময় ধাপটি চালানো হয় না। উদাহরণ হিসাবে, নোড-ইনফ্লক্স / নোড-ইনফ্লো ইনস্টল করার চেষ্টা করুন ।
ড্যান ড্যাসক্লেস্কু

4
ফোল্ডারবিহীন রেপোগুলি distগিটহাব থেকে ইনস্টল করা যাবে, উদাহরণস্বরূপ: npm install https://github.com/fergiemcdowall/search-index-adderপুরোপুরি কার্যকর works
ফার্গি

4
ঠিক আছে, কারণ আপনার কাছে সরাসরি ইউসাবেল উত্স রয়েছে /lib(যেন আপনার কোনও ডিস ফোল্ডার ছিল)। আমার বক্তব্যটি হ'ল প্যাকেজের কোনও রেপির গিটহাব ইউআরএল অন্তর্ভুক্ত করা হয়েছে ons জোনগুলি সেই রেপো ইনস্টল করার জন্য কাজ করার গ্যারান্টিযুক্ত নয়। টাইপস্ক্রিপ্টে লিখিত মডিউলগুলি উদাহরণস্বরূপ, তাদের পরিবর্ধিত কোডটি রেপোতে ঠেলাতে হবে। তারা সাধারণত এটি করে না, পরিবর্তে .জেএস কোডটি একটি ডি ফোল্ডারে ডাম্প করার জন্য একটি প্রিপুব্লিশ স্ক্রিপ্ট ব্যবহার করে, যা এনপিএমজেএস.কম এ আপলোড হয়।
ড্যান ড্যাসক্লেস্কু

2
আমি জানি যে এটি কিছুটা দেরি হয়েছে, তবে কৌশলটি আসলে এনপিএমের কাছে গিট সংগ্রহস্থলগুলিতে 1-থেকে -1 ম্যাপিং নেই। কিছু প্রকল্প প্রতিশ্রুতি দেওয়ার আগে প্রকাশের আগে তাদের উত্স ফাইলগুলি তৈরি করে, যার অর্থ তারা গিট রেপোতে নেই, তবে এনপিএম প্যাকেজে থাকবে - এটি করার প্রকল্পগুলি গিট থেকে ঠিক কাজ করবে না। এটি কীভাবে ব্যর্থ হতে পারে তার আরেকটি উদাহরণ হ'ল ম্যাক্রো সংগ্রহস্থলগুলি - বাবেলের গিটহাব প্রকল্প, উদাহরণস্বরূপ, সাবফোল্ডারগুলিতে শত শত পৃথক এনপিএম প্যাকেজ অন্তর্ভুক্ত রয়েছে। এগুলি পৃথকভাবে প্রকাশ করা যেতে পারে কারণ এনপিএম সরাসরি গিতে মানচিত্র করে না। এনপিএম আপনার ডিরেক্টরিতে যা আছে তা প্রকাশ করে।
জন চাদউইক

13
যে কেউ পরে এটির পিছনে হোঁচট খায় ... এনপিএম 5 এর হিসাবে এনপিএম prepareখালি "ইনস্টল" এর জন্য কোনও স্ক্রিপ্ট চালাবে, এতে গিট ডিপগুলি অন্তর্ভুক্ত রয়েছে। সংকলন এবং ডিস্ট ফোল্ডারগুলির উপরের উপরের মন্তব্যগুলির অর্থ পুরানো। যে প্যাকেজটি সঠিকভাবে চালাতে তাদের সংকলনটি সেট করে prepareতা গিটের মধ্যে কোনও সংকলিত সম্পদ প্রতিশ্রুতি না দিয়ে গিট ডিপ হিসাবে ঠিক কাজ করবে।
জেসনকার্নস

54

npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}একটি আলাদা শাখা ব্যবহার করার আছে ।


আমি এই ইস্যুতে দৌড়েছি ... github.com/yarnpkg/yarn/issues/2738 আমি গিথুব টারবাল রেজিস্ট্রিতে রেজিস্ট্রি পরিবর্তন করতে সক্ষম হয়েছি এবং এটি কার্যকর হয়েছে .. ধন্যবাদ!
ম্যাট গু

এটি আমার জন্য কিছু বড় পারফরম্যান্স সমস্যা সমাধান করেছে। {ব্যবহারকারী} / {REPO} .git # {ব্রাঞ্চ Using ব্যবহার করা খুব ধীর ছিল।
এরিক কোওপম্যানস

37

পিটার লায়নের বর্তমান শীর্ষ উত্তর সাম্প্রতিক এনপিএম সংস্করণের সাথে প্রাসঙ্গিক নয়। উদাহরণস্বরূপ, এই উত্তরের সমালোচনা করা হয়েছিল একই আদেশটি ব্যবহার করা এখন ভাল।

$ npm install https://github.com/visionmedia/express

আপনার যদি অবিরত সমস্যা থাকে তবে আপনি যে প্যাকেজটি ব্যবহার করছেন তা সমস্যা হতে পারে।


আপনি যখন এই কমান্ডটি ব্যবহার করেন এটি এখন স্বয়ংক্রিয়ভাবে github.com/expressjs/express এ পুনঃনির্দেশ করে :)
কলিন ডি

32

এনপিএমের ইনস্টল ডকুমেন্টেশনের পাশাপাশি অন্যান্য অসংখ্য উত্তর এখানে এখন পদ্ধতিগুলি বেশ ভালভাবে কভার করা হয়েছে।

npm install git+ssh://git@github.com:<githubname>/<githubrepo.git[#<commit-ish>]
npm install git+ssh://git@github.com:<githubname>/<githubrepo.git>[#semver:^x.x]
npm install git+https://git@github.com/<githubname>/<githubrepo.git>
npm install git://github.com/<githubname>/<githubrepo.git>
npm install github:<githubname>/<githubrepo>[#<commit-ish>]

যাইহোক, উল্লেখযোগ্য কিছু যা সম্প্রতি পরিবর্তিত হয়েছে তা হ'ল এনপিপি prepareস্ক্রিপ্টটি প্রতিস্থাপনের জন্য prepublishস্ক্রিপ্ট যুক্ত করা। এটি দীর্ঘদিনের সমস্যাটি সমাধান করে যেখানে গিটের মাধ্যমে ইনস্টল হওয়া মডিউলগুলি prepublishস্ক্রিপ্টটি চালায় না এবং এভাবে এনডিএম রেজিস্ট্রিতে মডিউল প্রকাশিত হওয়ার পরে ঘটে যাওয়া বিল্ড স্টেপগুলি সম্পূর্ণ করেনি। Https://github.com/npm/npm/issues/3055 দেখুন ।

অবশ্যই, মডিউল লেখকদের prepareকাজ শুরু করার জন্য নতুন নির্দেশিকাটি ব্যবহার করার জন্য তাদের প্যাকেজ.জসন আপডেট করতে হবে ।


19

এখনই আপডেট করুন আপনি করতে পারেন: npm install git://github.com/foo/bar.git
বা এতে package.json:

"dependencies": {
  "bar": "git://github.com/foo/bar.git"
}

19

সিনট্যাক্সের সাধারণ ফর্মটি হ'ল

<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]

যার অর্থ আপনার ক্ষেত্রে এটি হবে

npm install git+ssh://git@github.com/visionmedia/express.git

এনপিএমজেএস ডক্স থেকে:

এনপিএম ইনস্টল:

হোস্ট গিট সরবরাহকারীর কাছ থেকে প্যাকেজটি ইনস্টল করে গিট দিয়ে ক্লোন করে oning পুরো গিট রিমোট ইউআরএলের জন্য, কেবলমাত্র সেই URL টিই চেষ্টা করা হবে।

<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish>

| # সেমবার:] গিট, গিট + এসএসএস, গিট + http, গিট + https বা গিট + ফাইলগুলির মধ্যে একটি।

যদি # সরবরাহ করা হয় তবে এটি সেই প্রতিশ্রুতিটির ক্লোন করতে ব্যবহৃত হবে। যদি কমিট-ইশ-এর ফর্ম্যাটটি # সেমভার: থাকে তবে এটি কোনও বৈধ সেমভার পরিসর বা সঠিক সংস্করণ হতে পারে, এবং এনপিএম দূরবর্তী সংগ্রহস্থলের সাথে যে কোনও ট্যাগ বা রেফের সাথে মেলে সেগুলি অনুসন্ধান করবে, এটি রেজিস্ট্রি নির্ভরতার জন্য যতটা প্রয়োজন। যদি না হয় # বা

সেমভার: নির্দিষ্ট করা হয়, তারপরে মাস্টার ব্যবহৃত হয়।

যদি সংগ্রহস্থল সাবমডিউলগুলি ব্যবহার করে তবে সেগুলি সাবমোডিয়ুলগুলিও ক্লোন করা হবে।

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

নিম্নলিখিত গিট পরিবেশের ভেরিয়েবলগুলি এনপিএম দ্বারা স্বীকৃত এবং গিট চলাকালীন পরিবেশে যুক্ত হবে:

  • GIT_ASKPASS
  • GIT_EXEC_PATH
  • GIT_PROXY_COMMAND
  • GIT_SSH
  • GIT_SSH_COMMAND
  • GIT_SSL_CAINFO GIT_SSL_NO_VERIFY

বিশদটির জন্য গিট ম্যান পৃষ্ঠাটি দেখুন।

উদাহরণ:

npm install git+ssh://git@github.com:npm/npm.git#v1.0.27
npm install git+ssh://git@github.com:npm/npm#semver:^5.0
npm install git+https://isaacs@github.com/npm/npm.git
npm install git://github.com/npm/npm.git#v1.0.27
GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://git@github.com:npm/npm.git npm install

14

এটি সরাসরি ইনস্টল করুন:

npm install visionmedia/express

অন্যথা, আপনি যোগ করতে পারেন "express": "github:visionmedia/express"করতে "dependencies"বিভাগে package.jsonফাইল, তারপর সঞ্চালন করুন:

npm install


6

আপনি npm installকমান্ড দ্বারা সরাসরি একটি গিথুব রেপো ইনস্টল করতে পারেন, এটির মতো: npm install https://github.com/futurechallenger/npm_git_install.git --save

দ্রষ্টব্য: রেপোতে যা এনপিএম কমান্ড দ্বারা ইনস্টল করা হবে:

  1. হতে পারে আপনি একটি আছে Dist @Dan Dascalescu এর মন্তব্য অনুযায়ী, ফোল্ডার আপনি রেপো।
  2. আপনার অবশ্যই রেপোতে একটি প্যাকেজ.জসন থাকতে হবে ! যা আমি অ্যাড ভুলে গেছি।

1
distআপনার রেপোতে আপনার কোনও ফোল্ডার বা কোনও বিল্ড কোডের দরকার নেই । আপনার কেবলমাত্র একটি prepareস্ক্রিপ্ট ব্যবহার করতে হবে package.json
ক্যামেরন ট্যাকলাইন্ড


0

আমি চেষ্টা করেছি npm install git+https://github.com/visionmedia/expressকিন্তু এটি অনেক দীর্ঘ সময় নিয়েছে এবং আমি নিশ্চিত ছিল না যে এটি কার্যকর হবে।

আমার জন্য কি কাজ ছিল - yarn add git+https://github.com/visionmedia/express


-3

এই আদেশ ব্যবহার করে দেখুন

 npm install github:[Organisation]/[Repository]#[master/BranchName] -g

এই আদেশ আমার জন্য কাজ করে।

 npm install github:BlessCSS/bless#3.x -g

12
এনপিএম ইনস্টল করে সুডো ব্যবহার করবেন না! পরিবর্তে মালিক পরিবর্তন করতে chown ব্যবহার করুন।
মারেক ফাজকুস

সংস্করণটি ট্যাগ / শাখার নাম বা প্যাকেজ.জসন সংস্করণ?
এমফ্রেচেট

@ মারেকফাজকাস আপনি লিনাক্সে সুডো ব্যবহার করে যদি প্যাকেজ ম্যানেজারের মাধ্যমে ইনস্টল করেন ... আপনি বিশ্বব্যাপী প্যাকেজ ইনস্টল করতে চান তবে আপনাকে রুট ব্যবহার করতে হবে
রায় ফস

1
@ রায়ফস এক বছর দেরীতে তবে ... কেবলমাত্র যদি আপনি চান যে বিশ্বব্যাপী ইনস্টল করা প্যাকেজটি সমস্ত ব্যবহারকারীর জন্য উপলব্ধ হয়ে উঠুক, যা ক্ষেত্রে খুব কমই হয়। বিশ্বব্যাপী প্যাকেজগুলি ইনস্টল করতে কেবল এনপিএম কনফিগার করুন ~/node_modules, তারপরে আপনার কখনই সুডোর প্রয়োজন হবে না।
Mr5o1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.