Как установить пакет 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
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.gitEDIT: есть несколько пользователей, комментирующих, что вы не можете сделать это для всех модулей, потому что Вы читаете из системы управления версиями, которая вполне может содержать недопустимый/некомпилированный/багги код. Поэтому, чтобы быть ясным (хотя это само собой разумеется):учитывая, что код в репо находится в состоянии 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:
- может быть, вы должны иметь dist папка в вашем РЕПО, согласно комментарию @Dan Dascalescu.
- вы определенно должны иметь пакета.json вы в репо! который я забыл добавить.
попробуйте эту команду
npm install github:[Organisation]/[Repository]#[master/BranchName] -gэта команда работала на меня.
npm install github:BlessCSS/bless#3.x -g
Comments