npm প্যাকেজ.জেসনে নির্ভরতার দ্বারা ব্যক্তিগত গিথুব সংগ্রহস্থলগুলি ইনস্টল করুন


210

আমি এনপিএমের মাধ্যমে গিথুব ব্যক্তিগত সংগ্রহস্থল ইনস্টল করার চেষ্টা করছি যা অন্যান্য বেসরকারী গিথুব সংগ্রহস্থলগুলিকে নির্ভরতা হিসাবে অন্তর্ভুক্ত করে।

অনেক উপায় এবং পোস্ট চেষ্টা করেছেন কিন্তু কোনওটিই কাজ করছে না। আমি যা করছি তা এখানে:

npm install git+https://github.com/myusername/mygitrepository.git

ইন প্যাকেজ.জসনের মতো:

"dependencies": {
    "repository1name": "git+https://github.com/myusername/repository1.git",
    "repository2name": "git+https://github.com/myusername/repository2.git"
}

এটি করার সঠিক উপায় কী?


4
git + https: // <token-from-github>: x-oauth-basic@github.com/ <user> / <GitRepo> .git এটি প্রমাণীকরণকে সমর্থন করে এবং সব ক্ষেত্রেই সূক্ষ্মভাবে কাজ করে।
বশিষ্ঠাশু

উত্তর:


147

এটা চেষ্টা কর:

"dependencies" : {
  "name1" : "git://github.com/user/project.git#commit-ish",
  "name2" : "git://github.com/user/project.git#commit-ish"
}

আপনি এটি চেষ্টাও করতে পারেন, যেখানে ভিশনমিডিয়া / এক্সপ্রেস নাম / রেপো:

"dependencies" : {
   "express" : "visionmedia/express"
}

অথবা (এনপিএম প্যাকেজ মডিউল উপস্থিত থাকলে):

"dependencies" : {
  "name": "*"
}

এনপিএম ডক্স থেকে নেওয়া


1
এনপিএম ইআরআর! গিট হেড ( github.com/user/reponame.git ) সমাধানে ব্যর্থ হয়েছে মারাত্মক: অস্পষ্ট যুক্তি 'কমিট-ইশ': অজানা সংশোধন বা পথ কার্যকরী গাছের মধ্যে নেই।
বশিষ্ঠশু

কাজ করে না। # এমএক্সএক্সএক্সএক্স প্রয়োজন হয় না যেমন এটিকে মাস্টার হিসাবে বিবেচনা করা হয় না এবং আমার সমস্ত কাজ মাস্টার হিসাবে রয়েছে in অন্য কোন ধারণা?
বশিষ্ঠশু

আপনি শিরোনামটি সরিয়ে ফেললে একই ফলাফল (# কমিট-ইশ)?
leko

আপনার ভাণ্ডারের নাম কী?
লেকো

28
@ ওয়াশিশতাশু, প্রীতিটি সম্পর্কে fatal: ambiguous argument 'commit-ish': unknown revision or path not in the working tree.স্পষ্টতই commit-ishএটি একটি নমুনা শব্দ যা shaআপনার প্রয়োজন এমন একটি নির্দিষ্ট প্রতিশ্রুতি দ্বারা প্রতিস্থাপন করা উচিত । (বা #commit-ishআপনার যদি আপনার মাস্টার শাখায় সর্বশেষ প্রতিশ্রুতি দরকার হয় তবে তা মুছে ফেলুন )
২15

91

নিম্নলিখিতগুলি আমার প্রয়োজন সমস্ত পরিস্থিতিতে ঠিকঠাক কাজ করেছে:

"dependencies": {
"GitRepo": "git+https://<token-from-github>:x-oauth-basic@github.com/<user>/<GitRepo>.git"
}

1
এই সমাধানের জন্য আপনার কি কোনও রেফারেন্স লিঙ্ক আছে?
ইয়ান

3
@ আইয়ান: আমি এটি কোথাও পড়েছি তবে রেফারেন্স লিঙ্ক নেই। আমি কোনও সমস্যা ছাড়াই এক বছরেরও বেশি সময় ধরে এটি উত্পাদনে ব্যবহার করছি আপনি গিথুব থেকে ওউথ টোকেন এই হিসাবে পেতে পারেন: সেটিংস -> অ্যাপ্লিকেশন -> ব্যক্তিগত অ্যাক্সেস টোকন -> নতুন টোকেন উত্পন্ন করুন। এই টোকেনে আপনার ব্যবহারের ক্ষেত্রে অনুসারে পড়তে / লিখতে বা উভয় সুবিধে থাকতে পারে।
বশিষ্ঠশু

6
@ এলান: বিটবাকেটের জন্য আপনি নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করতে পারেন: গিট ক্লোন https: // <bitbucket-team-token>: x-oauth-basic@bitbucket.org/ <team> / <BitRepo> <bitbucket-team-token> থেকে প্রাপ্ত হতে হবে: দল -> টিম পরিচালনা করুন -> এপিআই কী
বশিষ্ঠাশু

@ ওয়াশিশতাশু, দুর্দান্ত ধারণা দেওয়ার জন্য ধন্যবাদ। তবে, এটি চেষ্টা করার সময় আমি "মারাত্মক: ব্লেব্লাহ খুঁজে পাইনি", যদিও আমি রেপোতে প্রশ্ন করা ব্যবহারকারীকে অ্যাক্সেস দিয়েছি। কোন ধারনা?
প্রতি লন্ডবার্গ

2
এই কৌশলটি সম্পর্কে এখানে একটি চমৎকার নিবন্ধ: rzrsharp.net/2013/07/02/…
সাইবারওয়ম্বাট

75

আপনারা যারা এখানে পাবলিক ডিরেক্টরিতে এসেছেন, এনপিএম ডক্স থেকে: https://docs.npmjs.com/files/package.json#git-urls-as- নির্ভরতা

নির্ভরতা হিসাবে গিট ইউআরএল

গিট ইউআরএলগুলি ফর্ম হতে পারে:

git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+ssh://user@hostname/project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish

কমিট-ইশটি কোনও ট্যাগ, শ, বা শাখা হতে পারে যা গিট চেকআউটের যুক্তি হিসাবে সরবরাহ করা যেতে পারে। ডিফল্ট হ'ল মাস্টার।


1
"পাবলিক ডিরেক্টরিগুলির জন্য" এর অর্থ কী?
ড্যান ড্যাসকলেসকু

1
As of version 1.1.65, you can refer to GitHub urls as just “foo”: “user/foo-project”. এনপিএমজেএস ডক্সের রেফারেন্স
আলেকজান্দার

প্রোটোকল git+https://মানে কি? gitক্লোনিংয়ের জন্য প্রোটোকল ব্যবহার করুন এবং ধাক্কা দেওয়ার সময় নতুন পরিবর্তনগুলি টানুন https?
টোনিক্স

60

গৃহীত উত্তরটি কাজ করে, তবে নিরাপদ টোকেনগুলি এগুলিতে আটকানোর মত ধারণাটি আমি পছন্দ করি না package.json

আমি এটি অন্য কোথাও খুঁজে পেয়েছি, গিট-কনফিগার ম্যানপেজে ডকুমেন্টেড হিসাবে এই ওয়ানটাইম কমান্ডটি চালান ।

git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf git@github.com:

GITHUB_TOKEN পরিবেশগত পরিবর্তনশীল হিসাবে সেটআপ হতে পারে বা সরাসরি আটকানো হতে পারে

এবং তারপরে আমি প্রাইভেট গিথুব রেপোগুলি ইনস্টল করি: npm install user/repo --save


হেরোকুতেও কাজ করে, উপরের git config ...কমান্ডটি heroku-prebuildস্ক্রিপ্ট হিসাবে package.jsonসেটআপ করুন GITHUB_TOKENএবং হেরোকু কনফিগার ভেরিয়েবল হিসাবে সেটআপ করুন ।


এটি মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও টিম সার্ভিসেস বিল্ড চেইনেও কাজ করে, যেখানে আমি এটিকে "কমান্ড" হিসাবে npm installপদক্ষেপের ঠিক আগে সম্পাদন করি।
লুক্স

2
দর্শনীয়! সিআই পরিবেশের জন্য দুর্দান্ত সমাধান! আমি এটি কিছুটা পরিবর্তন করতে হয়েছিল; আমাকে ...insteadOf ssh://git@github.com
শেষটি

2
এটি আমার এনপিএমকে প্রভাবিত করবে বলে মনে হচ্ছে না। এটি চলার সময় এখনও ssh ব্যবহার করে npm install user/repo --save। আমার কনফিগার করার দরকার আছে কি?
মার্কো প্রিন্স

1
সিআই পরিবেশের জন্য দুর্দান্ত সমাধান যেখানে এসএসএইচ স্থাপন একটি ব্যথা (ক্লাউডবিল্ড)! এই এক জন্য আপনাকে অনেক ধন্যবাদ!
ম্যাথিউউউউর

43

লোকেদের নির্দেশ হিসাবে এটি করার একাধিক উপায় রয়েছে তবে সংক্ষিপ্ত সংস্করণগুলি হ'ল:

// from master
"depName": "user/repo",

// specific branch
"depName": "user/repo#branch",

// specific commit
"depName": "user/repo#commit",

// private repo
"depName": "git+https://[TOKEN]:x-oauth-basic@github.com/user/repo.git"

যেমন

"dependencies" : {
  "hexo-renderer-marked": "amejiarosario/dsa.jsd#book",
  "hexo-renderer-marked": "amejiarosario/dsa.js#8ea61ce",
  "hexo-renderer-marked": "amejiarosario/dsa.js",
}

3
এটাই সেরা উত্তর! <3 সরাসরি কথা বলা এবং এমনকি বিভিন্ন মামলার উদাহরণও দেখান।
রেনাতো কারভালহো

সার্বজনীন সংগ্রহাগুলির জন্য সুসিন্ট উত্তর, যা দুর্ভাগ্যক্রমে ওপি-র প্রশ্ন ছিল না। তবুও, এটি আমাকে সহায়তা করেছিল এবং আমি এটির প্রশংসা করেছি।
রেন্ডারওয়ার্ল্ড

আমি ব্যক্তিগত উত্তর রেপো কেস অন্তর্ভুক্ত করার জন্য আমার উত্তর আপডেট করেছি
অ্যাড্রিয়ান

29
"dependencies": {
  "some-package": "github:github_username/some-package"
}

বা শুধু

"dependencies": {
  "some-package": "github_username/some-package"
}

https://docs.npmjs.com/files/package.json#github-urls


নিখুঁতভাবে কাজ এবং সবচেয়ে সংক্ষিপ্ত। অন্যান্য সমাধান থেকে ত্রুটি ছিল। ধন্যবাদ!
রায়ল

7

যেহেতু গিট curlহুডের নীচে ব্যবহার ~/.netrcকরে তাই আপনি শংসাপত্রগুলির সাথে ফাইলটি ব্যবহার করতে পারেন । গিটহাবের জন্য এটি দেখতে এমন কিছু দেখাচ্ছে:

machine github.com
  login <github username>
  password <password OR github access token>

আপনি যদি ব্যবহার করতে চান access tokens, এটি থেকে উত্পন্ন করা যেতে পারে:

সেটিংস -> বিকাশকারী সেটিংস -> ব্যক্তিগত অ্যাক্সেস টোকেন

আপনি যদি নিজের কর্পোরেশনে গিথুব এন্টারপ্রাইজ ব্যবহার করছেন তবে এটিও কাজ করা উচিত। শুধু আপনার এন্টারপ্রাইজ গিথুব ইউআরএল machineফিল্ডে রাখুন।


আমার জন্য machine github.com login <token>এক লাইনে "package": "https://github.com/acme/privaterepo.git#commit-ish"বা সরাসরি এর সাথে কাজ করেছেনnpm install https://github.com/acme/privaterepo.git#commit-ish
24:25 এবার্নিয়ার

4

package.jsonফাইলটিতে প্রকাশ না করে কীভাবে গিথুব টোকেন ব্যবহার করবেন তার আরও বিস্তৃত সংস্করণ এখানে ।

  1. ব্যক্তিগত গিথুব অ্যাক্সেস টোকেন তৈরি করুন
  2. Up / .gitconfig এ url পুনর্লিখন সেটআপ করুন
git config --global url."https://<TOKEN HERE>:x-oauth-basic@github.com/".insteadOf https://x-oauth-basic@github.com/
  1. ব্যক্তিগত সংগ্রহস্থল ইনস্টল করুন। ডিবাগ অ্যাক্সেস ত্রুটির জন্য ভারবোজ লগ স্তর।
npm install --loglevel verbose --save git+https://x-oauth-basic@github.com/<USERNAME HERE>/<REPOSITORY HERE>.git#v0.1.27

গিথুব অ্যাক্সেস ব্যর্থ হলে, git ls-remote ...কমান্ডটি চালানোর চেষ্টা করুনnpm install will print


0

আমার ব্যক্তিগত সংগ্রহস্থলের রেফারেন্সের জন্য আমি কোনও সুরক্ষিত টোকেন অন্তর্ভুক্ত করতে চাইনি এবং অন্য কোনও সরল (যেমন কেবল প্যাকেজ.জেসন-তে নির্দিষ্ট করে) কাজ করে নি। এখানে কি কাজ করেছে:

  1. গিটহাব.কম.-এ গিয়েছিলেন
  2. বেসরকারী সংগ্রহস্থলে নেভিগেট করা হয়েছে
  3. "ক্লোন বা ডাউনলোড" এবং অনুলিপি করা URL টি ক্লিক করুন (যা উপরের উদাহরণগুলির সাথে মেলে না)
  4. যোগ করা # কমিট-শ
  5. রান এনপিএম ইনস্টল

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