Как установить пакет npm непосредственно из GitHub?



попытка установить модули из github приводит к:




ENOENT ошибка на упаковке.формат JSON.




легко воспроизводится с помощью express:



npm install https://github.com/visionmedia/express выбрасывает ошибку.



npm install express строительство.



почему я не могу установить из github?



вот вывод консоли:



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! <[email protected]>

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
1836   13  

13 ответов:

, потому что https://github.com/visionmedia/express - это URL-адрес веб-страницы, а не модуля npm. Используйте этот аромат:

git+https://[email protected]/visionmedia/express.git

или этот аромат, если вам нужен SSH:

git+ssh://[email protected]/visionmedia/express.git

вы также можете сделать npm install visionmedia/express для установки с Github

или

npm install visionmedia/express#branch

существует также поддержка установки непосредственно из Gist, Bitbucket, Gitlab и ряда других специализированных форматов. Посмотрите на npm installдокументация для них все.

Если Git не установлен, мы можем попробовать

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

там же npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH} для использования другой ветви.

обновление сентября 2016

установка из vanilla https GitHub URLs теперь, кажется, работает:

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

EDIT: есть несколько пользователей, комментирующих, что вы не можете сделать это для всех модулей, потому что Вы читаете из системы управления версиями, которая вполне может содержать недопустимый/некомпилированный/багги код. Поэтому, чтобы быть ясным (хотя это само собой разумеется):учитывая, что код в репо находится в состоянии npm-usable, теперь вы можете вполне счастливо установите непосредственно с github

текущий верхний ответ Питера Лайонса не имеет отношения к последним версиям NPM. Например, использование той же команды, которая была подвергнута критике в этом ответе, теперь отлично.

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

Если у вас есть постоянные проблемы, это может быть проблема с тем, что пакет, который вы используете.

методы покрыты довольно хорошо теперь в документация по установке npm а также многочисленные другие ответы здесь.

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

однако, что-то заметное, что изменилось в последнее время является npm добавление prepare скрипт для замены prepublish сценарий. это устраняет давнюю проблему, когда модули, установленные через git, не запускали prepublish сценарий и, таким образом, не выполнили шаги сборки, которые происходят при публикации модуля в npm регистратура. Смотрите https://github.com/npm/npm/issues/3055.

конечно, авторы модуля должны будут обновить свой пакет.json для использования нового prepare директива для этого, чтобы начать работать.

установите его непосредственно:

npm install visionmedia/express

кроме того, вы можете добавить "express": "github:visionmedia/express" до на package.json файл, затем запустите:

npm install

общая форма синтаксиса

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

что означает, что для вашего случая это будет

npm install git+ssh://[email protected]/visionmedia/express.git

из документов npmjs:

npm install:

устанавливает пакет из размещенного поставщика git, клонируя его с помощью мерзавец. Для полного удаленного url-адреса git будет предпринята только эта попытка.

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

/ #semver:] является одним из git, git + ssh, git+http, git + https, или git + file.

если #, то она будет использоваться для клонирования именно это совершать. Если commit-ish имеет формат #semver:, может быть любой допустимый диапазон semver или точная версия, и npm будет искать любые теги или ссылки, соответствующие этому диапазону в удаленном репозитории, например это было бы для зависимости реестра. Если ни#, ни

semver: указывается, затем используется master.

если репозиторий использует подмодули, эти подмодули будут клонируются, а также.

если пакет устанавливаемый содержит сценарий подготовки, его зависимости и devDependencies будут установлены, и подготовка скрипт будет запущен, прежде чем пакет будет упакован и установлен.

следующие переменные среды 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://[email protected]:npm/npm.git#v1.0.27
npm install git+ssh://[email protected]:npm/npm#semver:^5.0
npm install git+https://[email protected]/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://[email protected]:npm/npm.git npm install

вы также можете сделать

npm i alex-cory/fasthacks

или

npm i github:alex-cory/fasthacks

по сути:

npm i user_or_org/repo_name

обновление теперь вы можете сделать: npm install git://github.com/foo/bar.git
или в package.json:

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

вы можете напрямую установить репозиторий github с помощью npm install команда, как это: npm install https://github.com/futurechallenger/npm_git_install.git --save

Примечание: в репо, которое будет установлено командой npm:

  1. может быть, вы должны иметь dist папка в вашем РЕПО, согласно комментарию @Dan Dascalescu.
  2. вы определенно должны иметь пакета.json вы в репо! который я забыл добавить.

попробуйте эту команду

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

эта команда работала на меня.

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

Comments

    Ничего не найдено.