GitHub වෙතින් කෙලින්ම npm පැකේජයක් ස්ථාපනය කරන්නේ කෙසේද?


903

ගිතබ් වෙතින් මොඩියුල ස්ථාපනය කිරීමට උත්සාහ කිරීමෙන් ප්‍රති results ල:

Package.json හි ENOENT දෝෂයකි.

සී express ්‍රගාමී භාවිතයෙන් පහසුවෙන් ප්‍රතිනිෂ්පාදනය:

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
Package.json devDependencies ආකෘතිය ලබා දීමට කිසිවෙකුට හැකිද?
ආදම්

1
D ඇඩම් ඔබට කොටසට එකතු "express": "github:visionmedia/express"කර ධාවනය කරන්න: (පහත සඳහන් පරිදි)"dependencies"package.json filenpm install
ඩැනී

ඩැනී, ඒක මට වැඩ කරන්නේ නැහැ. එය සක්‍රීය කිරීම සඳහා එම සී express ්‍රගාමී ගබඩාවේ dist ෆෝල්ඩරයක් තිබේදැයි මට සිතේ.
ml242

Answers:


1191

මන්ද https://github.com/visionmedia/expressවෙබ් පිටුවක URL එක මිස npm මොඩියුලයක් නොවේ. මෙම රසය භාවිතා කරන්න:

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

හෝ ඔබට SSH අවශ්‍ය නම් මෙම රසය:

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

86
ඔබට git+https://github.com/visionmedia/express.gitssh වෙනුවට https භාවිතා කිරීමටද හැකිය.
ස්ටීව් විල්කොක්

46
ඔබට ස්ථාපනය කිරීමට අවශ්‍ය නිධිය npm මොඩියුලයක් විය යුතු බව සලකන්න , එහි package.jsonගොනුවක් අඩංගු විය යුතුය, නැතිනම් ඔබට මෙම දෝෂය ලැබෙනු ඇත : Error: ENOENT, open 'tmp.tgz-unpack/package.json'.
GabLeRoux

20
මට විශේෂිත ශාඛාවක් අවශ්‍ය නම්
kilianc

3
මම දැන් සිතන එකම විසඳුම වන්නේ ... / express.git # commit සමඟ බැඳීමක් නියම කිරීමයි
ගැස්ටන් සැන්චෙස්

40
කවචයෙන් #විශේෂිත ශාඛාවක් භාවිතා කිරීම සඳහා ඔබට පැන යා යුතු යැයි පැවසීම වටී , එනම්:npm install git+https://github.com/user/repo.git\#branch
mor

675

npm install visionmedia/expressගිතුබ් වෙතින් ස්ථාපනය කිරීමටද ඔබට කළ හැකිය

හෝ

npm install visionmedia/express#branch

Gist, Bitbucket, Gitlab සහ තවත් විශේෂිත ආකෘති ගණනාවකින් සෘජුවම ස්ථාපනය කිරීම සඳහා සහාය ද ඇත. ඔවුන් සියල්ලන් සඳහා npm install ලියකියවිලි දෙස බලන්න .


22
URL සඳහන් නොකර කුමක් ද? ඔබ භාවිතා කරන රසකාරක සත්කාරක සේවාව npm දැන ගන්නේ කෙසේද?
ජේක් රේසන්

23
@Jake Rayson: එය පටන් පුලුවන් 1.1.65 අනුවාදය සඳහා ක්රියා github.comපමණි.
ezze

5
වින්ඩෝස් හි මා වෙනුවෙන් වැඩ කළේ නැත - එය මගේ වර්තමාන නාමාවලියෙහි උප ෆෝල්ඩරයකින් ස්ථාපනය කිරීමට උත්සාහ කළේය.
ජැරොඩ් මොසෙන්

7
Npm 1.4.28 වන විට මෙය ගෝලීය ස්ථාපනයන්හි (එනම් npm i repo / pkg -g) ක්‍රියා නොකරන බව සලකන්න
user3751385

1
37 user3751385 ගෝලීය ස්ථාපනයන් npm 3.3.8 හි ක්‍රියාත්මක වන බව පෙනේ.
XåpplI'-I0llwlg'I -

175

Git ස්ථාපනය කර නොමැති නම්, අපට උත්සාහ කළ හැකිය

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

11
නියම පිළිතුර! එය මට වැඩ කළ අතර අනෙක් විධානයන් (වෙනත් පිළිතුරු වලින්) කිසියම් තර්ක විතර්ක තර්කනයක සිරවී ඇත.
ඩැනියෙල් ක්මාක්

2
ඔබට වෙනුවට ටැග් නම් භාවිතා කළ හැකිය master. එය එසේ කිරීම ආරක්ෂිතයි.
mpen

4
ඔබ ශාඛා සමඟ වැඩ කරන විට, සාමාන්‍ය ආකෘති පිළිතුරක් ඇතුළත් කිරීම සඳහා ඔබේ පිළිතුර වෙනස් කළ යුතුය, මම /tarball/මුලින් දුටුවේ නැත
Lu Roman

2
ඩෝකර් බහාලුමක් තුළ සිට යැපීමක් ස්ථාපනය කිරීමේදී මට වැඩ කළ එකම පිළිතුර මෙයයි.
Fela Maslen

2
සම්පූර්ණ repo එක බාගත කිරීම අවශ්‍ය නොවන නිසා මෙයද පරිපූර්ණයි. ස්තූතියි!
som

63

යාවත්කාලීන කිරීම 2016 සැප්තැම්බර්

වැනිලා වෙතින් ස්ථාපනය කිරීම https github URL දැන් ක්‍රියාත්මක වේ:

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

1 වන සංස්කරණය: ඔබ මූලාශ්‍ර පාලන පද්ධතියකින් කියවන බැවින් ඔබට සියලු මොඩියුල සඳහා මෙය කළ නොහැකි යැයි අදහස් දක්වන පරිශීලකයින් කිහිප දෙනෙකු ඇත, එහි වලංගු නොවන / සම්පාදනය නොකළ / දෝෂ සහිත කේත අඩංගු විය හැකිය. එබැවින් පැහැදිලි විය යුතුය (එය නොකියා යා යුතු වුවද): repo හි කේතය npm භාවිතා කළ හැකි තත්වයක පවතින බැවින් , දැන් ඔබට සතුටින් කෙලින්ම github වෙතින් ස්ථාපනය කළ හැකිය

සංස්කරණය 2: (21-10-2019) අප දැන් ජීවත් වන්නේ “උපරිම යතුරු ලියනය / ප්‍රතික්‍රියා / බාබෙල්” හරහා වන අතර එබැවින් ජාවාස්ක්‍රිප්ට් සම්පාදනය කිරීම සාමාන්‍ය දෙයක් වී තිබේ. ඔබට සම්පාදනය සැලකිල්ලට ගැනීමට අවශ්‍ය නම් සොයා බලන්න prepare. බව, සඳහන් NPM මොඩියුල නැහැ අවශ්ය සකස් කිරීමට (ඉතා නව, ලේ ගැලීම නවීන "ESNext" -y අය සඳහා ද එසේම සහ), සහ එය සම්පාදනය කිරිමේ කටයුතු ආරම්භ කිරීමට, නැණවත්, විශේෂයෙන්ම පැරණි node එකක් මතම ඊට අදාල මොඩියුලයන් සඳහා පෙරනිමි නොවේ.


10
Repo හි distෆෝල්ඩරයක් ඇතුළත් නොවන්නේ නම් සහ බොහෝ විට එසේ නොකරන්නේ නම් ඔබට එහි GitHub ප්‍රභවයෙන් ඔබට අවශ්‍ය කිසිදු npm පැකේජයක් ස්ථාපනය කළ නොහැක. මා සම්බන්ධ කළ ගැටළුව npm දෝෂයකි - prebuildGitHub වෙතින් ස්ථාපනය කිරීමේදී පියවර ක්‍රියාත්මක නොවේ. උදාහරණයක් ලෙස, node-flowx / node-flowx ස්ථාපනය කිරීමට උත්සාහ කරන්න .
ඩෑන් ඩස්කල්ස්කු

4
distෆෝල්ඩර නොමැති ගබඩාවන් GitHub වෙතින් ස්ථාපනය කළ හැකිය, උදාහරණයක් ලෙස: npm install https://github.com/fergiemcdowall/search-index-adderපරිපූර්ණව ක්‍රියා කරයි.
ෆර්ජි

4
හරි, ඔබ සතුව කෙලින්ම usabel ප්‍රභවයක් ඇති නිසා /lib(ඔබට dist folder එකක් තිබේ නම්). මගේ අදහස නම්, පැකේජයේ ඇති repo එකක GitHub URL එක ඇතුළත් කිරීම පමණක් එම repo ස්ථාපනය සඳහා වැඩ කිරීමට සහතික නොවන බවයි. ටයිප්ස්ක්‍රිප්ට් හි ලියා ඇති මොඩියුලයන්ට ඒවායේ සම්ප්‍රේෂණය කළ කේතය රෙපෝවට තල්ලු කිරීම අවශ්‍ය වේ. ඔවුන් සාමාන්‍යයෙන් මෙය නොකරයි, නමුත් .JS කේතය දුරස්ථ ෆෝල්ඩරයකට දැමීම සඳහා පූර්ව ප්‍රකාශන පිටපතක් භාවිතා කරයි, එය npmjs.com වෙත උඩුගත වේ.
ඩෑන් ඩස්කල්ස්කු

2
මම දන්නවා මේක ටිකක් පරක්කුයි, නමුත් උපක්‍රමය ඇත්ත වශයෙන්ම npm ට Git ගබඩාවලට 1 සිට 1 දක්වා සිතියමක් නොමැත. සමහර ව්‍යාපෘති ඔවුන්ගේ මූලාශ්‍ර ලිපිගොනු ප්‍රකාශයට පත් කිරීමට පෙර ප්‍රකාශයට පත් කිරීමට පෙර ගොඩනඟයි, එයින් අදහස් වන්නේ ඒවා Git repo හි නොමැති නමුත් npm පැකේජයේ වනු ඇති බවයි - මෙය කරන ව්‍යාපෘති Git වෙතින් ක්‍රියාත්මක නොවේ. මෙය අසාර්ථක විය හැකි ආකාරය පිළිබඳ තවත් උදාහරණයක් වන්නේ සාර්ව නිධි ය - බාබෙල්ගේ GitHub ව්‍යාපෘතියට උප ෆෝල්ඩරවල තනි එන්පීඑම් පැකේජ සිය ගණනක් ඇතුළත් වේ. Npm කෙලින්ම Git වෙත සිතියම් ගත නොකරන බැවින් ඒවා තනි තනිව ප්‍රකාශයට පත් කළ හැකිය. npm ඔබේ නාමාවලියෙහි ඇති ඕනෑම දෙයක් ප්‍රකාශයට පත් කරයි.
ජෝන් චැඩ්වික්

15
පසුකාලීනව පැකිලෙන ඕනෑම කෙනෙකුට ... npm5 වන විට, npm ඕනෑම prepareපිටපතක් හිස් "ස්ථාපනයන්" සඳහා ධාවනය කරනු ඇත , එයට git deps ඇතුළත් වේ. එයින් අදහස් කරන්නේ සම්පාදනය හා දුරස්ථ ෆෝල්ඩර පිළිබඳ ඉහත අදහස් යල්පැන ඇති බවයි. prepareසම්පාදනය කළ වත්කම් නිසි ලෙස සකසා නොගන්නා ඕනෑම පැකේජයක් git dep ලෙස හොඳින් ක්‍රියා කරයි.
jasonkarns

54

npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}වෙනත් ශාඛාවක් භාවිතා කිරීමට ද ඇත.


මම මේ ප්‍රශ්නයට මුහුණ දුන්නා ... github.com/yarnpkg/yarn/issues/2738 රෙජිස්ට්රි ගිතුබ් ටාබෝල් රෙජිස්ට්රි වෙත වෙනස් කිරීමට මට හැකි වූ අතර එය ක්රියාත්මක විය .. ස්තූතියි!
මැට් ගූ

මෙය මට ප්‍රධාන කාර්ය සාධන ගැටළු කිහිපයක් විසඳීය. {USER} / {REPO} .git # {BRANCH using භාවිතා කිරීම ඉතා මන්දගාමී විය.
එරික් කූප්මන්ස්

37

පීටර් ලියොන්ස්ගේ වර්තමාන ඉහළම පිළිතුර මෑත කාලීන එන්පීඑම් අනුවාදයන්ට අදාළ නොවේ. උදාහරණයක් ලෙස, මෙම පිළිතුරෙහි විවේචනයට ලක්වූ එම විධානයම භාවිතා කිරීම දැන් හොඳයි.

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

ඔබට අඛණ්ඩ ගැටළු තිබේ නම් එය ඔබ භාවිතා කරන ඕනෑම පැකේජයක් සමඟ ගැටළුවක් විය හැකිය.


ඔබ මෙම විධානය භාවිතා කරන විට එය දැන් ස්වයංක්‍රීයව github.com/expressjs/express වෙත හරවා යවයි :)
කොලින් ඩී

34

ක්‍රම දැන් ඉතා හොඳින් ආවරණය වී ඇත එන්පීඑම් හි ස්ථාපන ලියකියවිලි වල මෙන්ම මෙහි ඇති වෙනත් බොහෝ පිළිතුරු ඇත.

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>]

කෙසේ වෙතත්, මෑතකදී වෙනස් වී ඇති සැලකිය යුතු දෙයක් වන්නේ npm එකතු කිරීමයි prepare ස්ක්‍රිප්ට් වෙනුවට ආදේශprepublish . Git හරහා ස්ථාපනය කර ඇති මොඩියුලයන් prepublishස්ක්‍රිප්ට් ක්‍රියාත්මක නොවූ අතර එන්පීඑම් ලේඛකාධිකාරයට මොඩියුලයක් ප්‍රකාශයට පත් කළ විට ඇතිවන පියවර සම්පූර්ණ නොකිරීමේ දීර් standing කාලීන ගැටලුවක් මෙය විසඳයි. Https://github.com/npm/npm/issues/3055 බලන්න .

ඇත්ත වශයෙන්ම, නව මොඩියුලය භාවිතා කිරීමට මොඩියුලයේ කතුවරුන්ට ඔවුන්ගේ package.json යාවත්කාලීන කළ යුතුය prepare .


21

යාවත්කාලීන කරන්නදැන් ඔබට කළ හැකිය කරන්න: npm install git://github.com/foo/bar.git
හෝ තුළ package.json:

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

20

වාක්‍ය ඛණ්ඩයේ සාමාන්‍ය ස්වරූපය වේ

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

එයින් අදහස් වන්නේ ඔබේ නඩුව සඳහා එය එසේ වනු ඇති බවයි

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

Npmjs ලියකියවිලි වලින්:

npm ස්ථාපනය:

පැකේජය සත්කාරක git සැපයුම්කරු වෙතින් ස්ථාපනය කර එය git සමඟ ක්ලෝන කරයි. සම්පූර්ණ git දුරස්ථ url සඳහා, උත්සාහ කරන්නේ එම URL පමණි.

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

| #semver:] යනු git, git + ssh, git + http, git + https, හෝ git + ගොනුවකි.

# ලබා දී ඇත්නම්, එය හරියටම එම කැපවීම ක්ලෝන කිරීමට භාවිතා කරයි. බැඳීම්-ඊෂ්ට #semver :, ආකෘතිය තිබේ නම්, ඕනෑම වලංගු සෙම්වර් පරාසයක් හෝ නිශ්චිත අනුවාදයක් විය හැකි අතර, එන්පීඑම් දුරස්ථ ගබඩාවේ එම පරාසයට ගැලපෙන ඕනෑම ටැග් හෝ යොමු කිරීමක් සොයනු ඇත. # හෝ නොවේ නම්

semver: නියම කර ඇත, පසුව මාස්ටර් භාවිතා වේ.

නිධිය උප මොඩියුල භාවිතා කරන්නේ නම්, එම උප මොඩියුලයන් ද ක්ලෝන කරනු ලැබේ.

ස්ථාපනය කර ඇති පැකේජයේ සූදානම් කිරීමේ ස්ක්‍රිප්ටයක් තිබේ නම්, එහි පරායත්තතා සහ ඩිව් ඩිපෙන්ඩෙන්ෂන්ස් ස්ථාපනය කෙරෙනු ඇති අතර පැකේජය ඇසුරුම් කර ස්ථාපනය කිරීමට පෙර සූදානම් කිරීමේ ස්ක්‍රිප්ට් ක්‍රියාත්මක වේ.

පහත දැක්වෙන git පරිසර විචල්‍යයන් npm විසින් හඳුනාගෙන ඇති අතර git ධාවනය කිරීමේදී පරිසරයට එකතු වේ:

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

විස්තර සඳහා git man පිටුව බලන්න.

උදාහරණ:

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

10

ඔබටත් කළ හැකිය

npm i alex-cory/fasthacks

හෝ

npm i github:alex-cory/fasthacks

මූලික වශයෙන්:

npm i user_or_org/repo_name

6

ඔබට npm installවිධානය මඟින් github repo සෘජුවම ස්ථාපනය කළ හැකිය , npm install https://github.com/futurechallenger/npm_git_install.git --save

සටහන: npm විධානය මඟින් ස්ථාපනය කරනු ලබන repo හි:

  1. සමහර විට ඔබට දුරක් තිබිය යුතුය @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
එන්පීඑම් ස්ථාපනය සමඟ සුඩෝ භාවිතා නොකරන්න! හිමිකරු වෙනස් කිරීමට චව්න් භාවිතා කරන්න.
මාරෙක් ෆජ්කස්

අනුවාදය ටැගය / ශාඛා නාමය හෝ package.json අනුවාදයද?
mfrachet

AreMarekFajkus ඔබ සුඩෝ භාවිතයෙන් පැකේජ කළමණාකරුවෙකු හරහා ලිනක්ස් මත ස්ථාපනය කරන්නේ නම් ... ඔබට ගෝලීය වශයෙන් පැකේජ ස්ථාපනය කිරීමට අවශ්‍ය නම් ඔබට root භාවිතා කිරීමට සිදුවේ
රේ ෆොස්

1
AyRayFoss වසරක් ප්‍රමාද නමුත් ... එය ගෝලීයව ස්ථාපනය කර ඇති පැකේජය සියලුම පරිශීලකයින්ට ලබා ගැනීමට අවශ්‍ය නම් පමණි, එය කලාතුරකිනි. ගෝලීය පැකේජ ස්ථාපනය කිරීම සඳහා npm වින්‍යාස කරන්න ~/node_modules, එවිට ඔබට කිසි විටෙකත් sudo අවශ්‍ය නොවේ.
Mr5o1
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.