কীভাবে আমার নিজের রেজিস্ট্রি ছাড়াই একটি প্রাইভেট এনপিএম মডিউল ইনস্টল করবেন?


329

আমি কিছু ভাগ করা কোড নিয়েছি এবং এটি এনপিএম মডিউলে রেখেছি, এটি একটি আমি কেন্দ্রীয় রেজিস্ট্রিতে আপলোড করতে চাই না। প্রশ্নটি হল, আমি অন্যান্য প্রকল্প থেকে এটি কীভাবে ইনস্টল করব?

সুস্পষ্ট উপায়টি সম্ভবত আমার নিজের এনপিএম রেজিস্ট্রি স্থাপন করা, তবে ডকুমেন্টেশন অনুসারে এতে অনেক ঝামেলা জড়িত।

আমি কি কেবল একটি এনপিএম মডিউল ইনস্টল করতে পারি যা স্থানীয় ফাইল সিস্টেমে বসে বা সম্ভবত গিট থেকেও?

npm install --from-git git@server:project

উত্তর:


262
cd somedir
npm install .

অথবা

npm install path/to/somedir

somedirঅবশ্যই এর package.jsonভিতরে থাকা উচিত ।

এটি গিট সম্পর্কেও জানে:

npm install git://github.com/visionmedia/express.git

4
পাথ / টু / স্যামডির সলিউশন ধরণের কাজ করে, তবে তারপরে এটি ভয়াবহ রকমের কারণ সমস্ত বিবৃতি প্রয়োজন হয় তারপরে সেই আপেক্ষিক বা পরম পথকে অন্তর্ভুক্ত করতে হয়। আমি যদি কিছু ভুল করছি তবে দয়া করে আমাকে সংশোধন করুন ...
লুক বেইস

3
@ লুক, হ্যাঁ, আপনি ভুল করছেন। npm installসমস্ত ফাইল আপনার প্রকল্প ডিরেক্টরিতে অনুলিপি করার পরে । সুতরাং requireবিবৃতিগুলির পথগুলি কেবলমাত্র আপনার প্রকল্প ডিরেক্টরিতে আপেক্ষিক।
মিহাই

4
আমি উপরের অংশটি দ্বারা বিভ্রান্ত হয়েছি এবং আমি নিজেই এটি পরীক্ষা না করানোর একমাত্র কারণ হ'ল আমি এখনও শিখছি এবং কাজ করার জন্য কোনও ব্যক্তিগত মডিউল নেই। যাইহোক, আপনার ডিরেক্টরিটি যেখানে মডিউলটি রয়েছে সেখানে পরিবর্তন করে এবং তারপরে কল করে installকি কেবল সেখানে ইনস্টল হবে না এবং যে প্রকল্পের জন্য আপনি এটি ব্যবহার করতে চান তা নয়?
অ্যাডাম বেক

11
পার্শ্ব নোট: (ক) গিট রেপো ব্যবহার করার সময়, আপনি #<ref>গিট ইউআরএল এর শেষে একটি শাখা / প্রতিশ্রুতি / ট্যাগ নির্দিষ্ট করতে পারেন , উদাহরণস্বরূপ git://github.com/visionmedia/express.git#v0.0.1; (খ) নিরাপদ "private": trueথাকা আপনার ব্যক্তিগত ভাণ্ডারের প্যাকেজ.জসনে যুক্ত করুন । এটি নিশ্চিত করবে যে এনএমপি আপনাকে ভুলক্রমে আপনার গোপন সসটি সরকারী এনএমপি রেজিস্ট্রিতে প্রকাশ করতে দেয় না। ( ডিবাগযোগ্য.com/posts/… অনুযায়ী )
রাফায়েল জাভিয়ার

9
অবগতির জন্য আপনি HTTP এর মাধ্যমে আপনার Git পরিবেশন করছে আপনি করতে হবে npm i git+http://all/the/things.gitযদিও git clone http://all/the/things.gitকাজ ঠিক সূক্ষ্ম
SLF

527

আপনার ব্যক্তিগত এনপিএম মডিউলগুলিতে অ্যাড

"private": true 

আপনার প্যাকেজ.জসনে

তারপরে অন্য মডিউলে ব্যক্তিগত মডিউলটি উল্লেখ করতে, এটি আপনার প্যাকেজ.জসনে ব্যবহার করুন

{
    "name": "myapp",
    "dependencies": {
        "private-repo": "git+ssh://git@github.com:myaccount/myprivate.git#v1.0.0",
    }
}

59
আপনার প্যাকেজ.জসন যদি ব্যক্তিগত রেপো নির্ভরতা তালিকা বজায় রাখতে চান তবে এটি আসল সঠিক উত্তর, যা আপনার করা উচিত একটি ভাল জিনিস (টিএম)।

6
উদাহরণস্বরূপ এটি একটি নির্দিষ্ট ট্যাগকে উল্লেখ করছে, তবে আপনার যদি এটি না থাকে তবে তা ডিফল্ট হয়ে যাবে মাস্টারকে। ( git-scm.com/book/en/Git- বেসিক্স- ট্যাগিং দেখুন )
250 আর

4
আমি বুঝতে পারি না যে এই কমান্ড লাইনটি কোনও ব্যক্তিগত গিথুব রেপো থেকে কোড ডাউনলোড করতে পারে যদি আমি আমার শংসাপত্রগুলি সরবরাহ না করি! তাহলে আমি কীভাবে আমার গিথুব শংসাপত্রগুলি পাস করতে পারি?
রেনাটো গামা

28
মনে রাখবেন যে "private": trueঅংশটি প্রয়োজনীয় নয়, তবে এটি আপনার ব্যক্তিগত রেপোটিকে দুর্ঘটনাক্রমে জনসাধারণের এনএমপি রেজিস্ট্রি থেকে প্রকাশিত হওয়া থেকে বিরত রাখতে সহায়তা করবে।
ইভানর্ম্মফি

2
এনপিএম বেশ কয়েকটি পরিবেশের পরিবর্তনশীলও সন্ধান করে। থেকে ম্যানুয়াল মধ্যে npm install <git remote url>অধ্যায়, মত অপশন আছে GIT_ASKPASSএবং GIT_SSH.An উদাহরণ ব্যবহার ডিফল্ট id_rsa চেয়ে একটি কী অন্যান্য চয়ন করতে:GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://git@github.com:npm/npm.git
জুঁই Hegman

62

আমি কি কেবল এমন একটি এনপিএম প্যাকেজ ইনস্টল করতে পারি যা স্থানীয় ফাইল সিস্টেমে বসে বা সম্ভবত গিট থেকেও?

হ্যা, তুমি পারো! Https://docs.npmjs.com/cli/install ডক্স থেকে

একটি প্যাকেজ হ'ল:

  • ক) একটি প্যাকেজ.জসন ফাইল দ্বারা বর্ণিত একটি প্রোগ্রামযুক্ত ফোল্ডার
  • খ) একটি গিজিপযুক্ত টারবাল রয়েছে (ক)
  • গ) একটি ইউআরএল যা (খ) এর সমাধান করে
  • d) ক <name>@<version> যা (সি) সহ রেজিস্ট্রিতে প্রকাশিত হয়
  • e) ক <name>@<tag> যা (ডি) নির্দেশ করে
  • চ) ক <name> "সর্বশেষ" ট্যাগ সন্তোষজনক রয়েছে এমন (ঙ)
  • ছ) <git remote url>যেটি (বি) এর সমাধান হয়

এনপিএম উজ্জ্বল না?


2
মনে রাখবেন যে আপনি বি বিকল্পের জন্য যান), এটি আসলে একটি জিজিপড টারবাল হতে হবে , কেবল জিপ সংরক্ষণাগারটি এটি করবে না। উদাহরণস্বরূপ, আপনি যদি নিজের প্যাকেজটি তৈরি করেন tar -czf my-package.tar.gz dist(ধরে নিলে আপনার distফোল্ডারেও এটির একটি যথাযথ package.jsonফাইল রয়েছে) তবে আপনি npm install ../my-lib/my-package.tar.gzঅন্য প্রকল্প থেকে করতে পারেন ।
ডানিয়েল কিস-নাগি

48

জানুয়ারী ২০১ Update আপডেট করুন

অন্যান্য উত্তর ছাড়াও , কখনও কখনও এমন দৃশ্যও দেখা যায় যেখানে আপনি দলের প্রসঙ্গে ব্যক্তিগত মডিউলগুলি পেতে চান।

উভয় গিটহাব এবং Bitbucket একটি দল উৎপাদিত ধারণা সমর্থন API কী । এই টিম হিসাবে এপিআই অনুরোধগুলি সম্পাদন করতে এই এপিআই কীটি পাসওয়ার্ড হিসাবে ব্যবহৃত হতে পারে ।

আপনার ব্যক্তিগত এনপিএম মডিউলগুলিতে অ্যাড

"private": true 

আপনার প্যাকেজ.জসনে

তারপরে অন্য মডিউলে ব্যক্তিগত মডিউলটি উল্লেখ করতে, এটি আপনার প্যাকেজ.জসনে ব্যবহার করুন

    {
        "name": "myapp",
        "dependencies": {
            "private-repo":
"git+https://myteamname:aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4@bitbucket.org/myprivate.git",
        }
    }

যেখানে দলের নাম = myteamname , এবং API কী = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4

এখানে আমি একটি বিটবাকেট রেপো রেফারেন্স করি, তবে এটি গিথুব ব্যবহার করেও প্রায় অভিন্ন।

অবশেষে, বিকল্প হিসাবে, যদি আপনি সত্যিই প্রতিমাসে paying 7 দিতে (লেখার মতো) দিতে আপত্তি করেন না তবে আপনার এখন বাক্সের বাইরে ব্যক্তিগত এনপিএম মডিউল থাকতে পারে।


আপনি যদি বিশ্বব্যাপী মডিউল পেতে চান তবে এটি ব্যবহার করতে পারেন?
পিআই

এটি আমার পক্ষে কাজ করে না আমি ভয় করি। দূরবর্তী এবং সংগ্রহস্থল উভয়ই পাওয়া যায় না। কোন ধারনা?
থমাস বোর্ম্যানস

@ থমাস বোর্ম্যানস - এখনও সমস্যা আছে? উপরের নির্দেশাবলী অনুসারে - আপনার প্যাকেজ.জসনের নির্ভরতা বিভাগে আপনার লাইন হিসাবে আপনার কী রয়েছে তা আটকে দিন (আপনার দলের নাম / এপিআই কী স্ক্র্যাম্ব করুন) paste আমি গিথুব এবং বিটবাকেট প্রাইভেট রেপো উভয়ের জন্যই এটির কাজটি ভাল করে দেখতে পেয়েছি। আপনি কোনটি ব্যবহার করছেন?
আর্সেল্ডন

@arcseldon "নাম": "Git + + কী: x-oauth-basic@bitbucket.org/user/repo.git " আয় EISDIR: একটি ডিরেক্টরি অবৈধ অপারেশন, পড়া । এবং "নাম": "গিট + ব্যবহারকারী: key@bitbucket.org/repo.git " এই শব্দগুলি রিমোট সহ বেশ কয়েকটি ত্রুটি প্রদান করে : পাওয়া যায় নি, মারাত্মক: সংগ্রহস্থল, কমান্ড ব্যর্থ হয়েছে: গিট ক্লোন । কোন ধারনা?
থমাস বোর্ম্যানস

উত্তরে আমি যে "নির্ভুল" ফর্ম্যাটটি দিয়েছি তা অনুসরণ করার চেষ্টা করুন: "গিট + https: // <myteamname>: <my_key> @ বিটবুকিট.আর / <my_repo_name> .git আপনি কী কী এপিআই তৈরি করেছেন? আপনি কি ডাবল চেক করেছেন? এটি আপনার bitbucket সেটিংস ... সুস্পষ্ট জিজ্ঞাসা করতে দুঃখিত সঠিক, কিন্তু আমি 100% আস্থা কাছাকাছি আছে এই কাজ করা উচিত।
arcseldon

30

এফডাব্লুআইডাব্লু: একটি বেসরকারী সংস্থা ভান্ডারগুলির সাথে কাজ করার সময় আমার এই সমস্ত উত্তরগুলির সাথে সমস্যা ছিল।

নিম্নলিখিত আমার জন্য কাজ করেছে:

npm install -S "git+https://username@github.com/orgname/repositoryname.git"

উদাহরণ স্বরূপ:

npm install -S "git+https://blesh@github.com/netflix/private-repository.git"

আমি কেন পুরোপুরি নিশ্চিত নই যে এই উত্তরগুলিতে অন্যান্য উত্তরগুলি আমার পক্ষে কেন কার্যকর হয়নি, কারণ গুগলকে আঘাত করার আগে এবং এই উত্তরটি খুঁজে পাওয়ার আগে আমি প্রথমে চেষ্টা করেছিলাম তারা । এবং অন্যান্য উত্তরগুলি আমি অতীতে যা করেছি।

আশা করি এটি অন্য কাউকে সহায়তা করে।


2
আপনি কি গিট রেপোর সাবফোল্ডার ব্যবহার করতে পারেন?
ক্রিস

2019 সালে আমার জন্য কাজ করেছেন! তবে আমাকে নিশ্চিত করতে হয়েছিল যে অ্যাকাউন্টটি অ্যাক্সেস করার জন্য গিটের শংসাপত্র রয়েছে । (উদাহরণস্বরূপ, পরীক্ষার গিটটি দু'বারের সাথে ক্লোন হয়ে গেছে এবং দ্বিতীয় বারে https://পাসওয়ার্ডের দরকার নেই তা নিশ্চিত করুন Then তারপর আপনি যাওয়াই ভাল!)
joeytwizz

9

আমারও একই সমস্যা ছিল এবং আশেপাশের কিছু অনুসন্ধানের পরে আমি রেজি ( https://github.com/mbrevoort/node-reggie ) পেয়েছি । দেখতে বেশ শক্ত লাগছে। এটি ব্যক্তিগত সার্ভারগুলিতে এনপিএম মডিউলগুলির হালকা ওজনের প্রকাশের অনুমতি দেয় allows নিখুঁত নয় (ইনস্টলেশন সংক্রান্ত কোনও প্রমাণীকরণ নয়), এবং এটি এখনও সত্যই তরুণ, তবে আমি স্থানীয়ভাবে এটি পরীক্ষা করেছি এবং এটি যা করা উচিত বলে মনে হয় তা করে বলে মনে হচ্ছে।

এটি ... (এবং এটি কেবল তাদের ডক্স থেকে)

npm install -g reggie
reggie-server -d ~/.reggie

তারপরে আপনার মডিউল ডিরেক্টরিতে সিডি করুন এবং ...

reggie -u http://<host:port> publish 
reggie -u http://127.0.0.1:8080 publish 

অবশেষে, আপনি সরাসরি ইউটিএমএল ইনস্টল কমান্ডে অথবা প্যাকেজ.জসনের মধ্যে থেকে ঠিক সেই url ব্যবহার করেই রেজি থেকে প্যাকেজ ইনস্টল করতে পারেন ... ঠিক তেমন

npm install http://<host:port>/package/<name>/<version>
npm install http://<host:port>/package/foo/1.0.0

অথবা ..

dependencies: {
    "foo": "http://<host:port>/package/foo/1.0.0"
}

7

নীচের মতো অ্যাক্সেসযোগ্য ফ্যাশনে আপনার কোডটি গঠন করুন। এটি যদি আপনার পক্ষে সম্ভব হয়।

  • NodeProjs \ অ্যাপস \ MainApp \ package.json

  • NodeProjs \ মডিউল \ DataModule \ package.json

মেইনএপ @ নোডপ্রোজস এর মধ্যে \ অ্যাপস \ মাইন অ্যাপ App

npm install --S ../../Modules/DataModule

আপনাকে প্যাকেজ.জসন আপডেট করার প্রয়োজন হতে পারে:

 "dependencies": {
       "datamodule": "../../Modules/DataModule"
}

এটি আমার পরিস্থিতির জন্য কাজ করেছিল।


5

এনপিএম এখন like 7 / ব্যবহারকারী / মাসের মতো ব্যবহারের জন্য সীমাহীন ব্যক্তিগত হোস্টেড মডিউল সরবরাহ করে

cd private-project
npm login

আপনার প্যাকেজ জসন সেট "name": " @username/private-project"

npm publish

তারপরে আপনার প্রকল্পের প্রয়োজন:

cd ../new-project
npm install --save @username/private-project

1
এর জন্য কি ক্লায়েন্ট-সাইড লগইন পদক্ষেপের প্রয়োজন?
আইডন হোলাচান

এর বিকল্প কী? উদাহরণস্বরূপ, আপনি যদি এস 3 এ আপনার "প্যাকেজ" হোস্ট করতে চান এবং সেখান থেকে টানুন।
কন আন্তোনাকোস

4

আরসেল্ডনের উত্তর দিয়ে শুরু করে , আমি দেখতে পেলাম যে ইউআরএলটিতে এই জাতীয় দলের প্রয়োজন ছিল:

npm install --save "git+https://myteamname@aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4@bitbucket.org/myteamname/myprivate.git"

এবং নোট করুন যে API কী কেবলমাত্র দলের জন্য উপলব্ধ, পৃথক ব্যবহারকারীদের জন্য নয়।


2

মেশিন ফায়ারওয়ালের অধীন থাকলেও পাবলিক গিথুব সংগ্রহস্থল থেকে ইনস্টল করার জন্য কনফিগার করুন:

dependencies: {
   "foo": "https://github.com/package/foo/tarball/master"
}

2

আমি একটি ব্যক্তিগত গিথুব সংগ্রহস্থলের সাথে নিম্নলিখিতটি ব্যবহার করি:

npm install github:mygithubuser/myproject

2

এটিই আমি খুঁজছিলাম :

# Get the latest from GitHub, public repo:
$ npm install username/my-new-project --save-dev
# Bitbucket, private repo:
$ npm install git+https://token:x-oauth-basic@github.com/username/my-new-project.git#master
$ npm install git+ssh://git@github.com/username/my-new-project.git#master

#  or from Bitbucket, public repo:
$ npm install git+ssh://git@bitbucket.org/username/my-new-project.git#master --save-dev
# Bitbucket, private repo:
$ npm install git+https://username:password@bitbucket.org/username/my-new-project.git#master
$ npm install git+ssh://git@bitbucket.org/username/my-new-project.git#master
# Or, if you published as npm package:
$ npm install my-new-project --save-dev

2

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

এটি তাদের ওয়েবসাইটে কীভাবে ইনস্টল ও চালানো যায় সে সম্পর্কে আপনি বিশদ তথ্য পেতে পারেন তবে পদক্ষেপগুলি এখানে:

এটি প্রয়োজন node >=8.x

    // Install it from npm globally
    npm install -g verdaccio

    // Simply run with the default configuration that will host the registry which you can reach at http://localhost:4873/
    verdaccio

    // Set the registry for your project and every package will be downloaded from your private registry
    npm set registry http://localhost:4873/

    // OR use the registry upon individual package install
    npm install --registry http://localhost:4873

এটিতে একটি ডকারও রয়েছে যাতে আপনি এটি সহজেই আপনার সর্বজনীন উপলভ্য ডকারে এবং ভয়েলাতে প্রকাশ করতে পারেন আপনার একটি ব্যক্তিগত এনপিএম সংগ্রহস্থল রয়েছে যা আপনি এটি কনফিগার করার সাথে সাথে অন্যভাবে বিতরণ করা যায়!


0

খুব সহজ -

npm config set registry https://path-to-your-registry/

এটি আসলে registry = "https://path-to-your-registry"এই লাইনটি সেট করে/Users/<ur-machine-user-name>/.npmrc

আপনি যে মানটি স্পষ্টভাবে সেট করেছেন বা ডিফল্ট হিসাবে সেট করেছেন সেগুলি এই দ্বারা দেখা যেতে পারে - npm config list

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