Попытка установить модули из github приводит к:
ENOENT ошибка в файле package.json.
Легко воспроизводится с помощью экспресс:
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! <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
github
npm
npm-install
node-modules
парень Мограби
источник
источник
"express": "github:visionmedia/express"
в"dependencies"
разделpackage.json file
, а затем запустить:npm install
(как упомянуто ниже)Ответы:
Потому что
https://github.com/visionmedia/express
это URL-адрес веб-страницы, а не модуль npm. Используйте этот аромат:или этот аромат, если вам нужен SSH:
источник
git+https://github.com/visionmedia/express.git
для использования https, а не SSH.package.json
файл, иначе вы получите эту ошибку:Error: ENOENT, open 'tmp.tgz-unpack/package.json'
.#
чтобы использовать определенную ветку из оболочки, а именно:npm install git+https://github.com/user/repo.git\#branch
Вы также можете сделать
npm install visionmedia/express
установку с Githubили
Существует также поддержка установки непосредственно из Gist, Bitbucket, Gitlab и ряда других специализированных форматов. Посмотрите на
npm install
документацию для них всех.источник
github.com
только для .Если git не установлен, мы можем попробовать
источник
master
. Наверное, безопаснее сделать это таким образом./tarball/
в первыйОбновление сентябрь 2016
Установка из ванильных URL-адресов https github теперь работает:
РЕДАКТИРОВАТЬ 1: есть несколько пользователей, которые комментируют, что вы не можете сделать это для всех модулей, потому что вы читаете из системы контроля версий, которая может содержать неверный / некомпилированный / ошибочный код. Итак, чтобы быть ясным (хотя это должно быть само собой разумеется): учитывая, что код в репозитории находится в состоянии , пригодном для использования в npm , теперь вы можете довольно счастливо установить прямо с github
РЕДАКТИРОВАТЬ 2: (21-10-2019) Мы сейчас переживаем "пик Typescript / React / Babel", и поэтому компиляция JavaScript стала довольно распространенным явлением. Если вам нужно принять во внимание компиляцию, изучите
prepare
. Тем не менее, модули NPM не нуждаются в компиляции , и разумно предположить, что компиляция не по умолчанию, особенно для более старых модулей узлов (и, возможно, также для очень новых, передовых "ESNext" -y).источник
dist
папки, а большинство этого не делает. Проблема, с которой яprebuild
столкнулся, - ошибка npm - при установке из GitHub этот шаг не выполняется. В качестве примера попробуйте установить node-infl / node-infl .dist
папок МОЖЕТ быть установлен из GitHub, например:npm install https://github.com/fergiemcdowall/search-index-adder
работает отлично./lib
(как будто у вас есть папка dist). Я хочу сказать, что включение GitHub URL репозитория в package.jons не гарантирует работоспособность установки репо. Например, модули, написанные на TypeScript, должны помещать свой переданный код в репозиторий. Обычно они этого не делают, а используют сценарий предварительной публикации, чтобы выгрузить код .JS в папку dist, которая загружается на npmjs.com.prepare
сценарий для простых «установок», включая git deps. Это означает, что вышеприведенные комментарии о компиляции и папках dist устарели. Любой пакет, который правильно запускает их компиляцию,prepare
будет работать как git dep без добавления каких-либо скомпилированных ресурсов в git.Там также
npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}
использовать другую ветку.источник
Текущий топ-ответ Питера Лайонса не имеет отношения к последним версиям NPM. Например, теперь можно использовать ту же команду, которая была подвергнута критике в этом ответе.
Если у вас продолжаются проблемы, это может быть проблемой с тем пакетом, который вы использовали.
источник
Методы достаточно хорошо описаны в документации по установке npm, а также во множестве других ответов здесь.
Тем не менее, кое-что, что изменилось в последнее время, это npm, добавляющий
prepare
скрипт для заменыprepublish
скрипта. Это устраняет давнюю проблему, когда модули, установленные через git, не запускалиprepublish
скрипт и, таким образом, не выполняли этапы сборки, которые происходят, когда модуль публикуется в реестре npm. См. Https://github.com/npm/npm/issues/3055 .Конечно, авторам модуля нужно будет обновить свой package.json, чтобы использовать новую
prepare
директиву, чтобы это начало работать.источник
ОБНОВЛЕНИЕ теперь вы можете сделать:
npm install git://github.com/foo/bar.git
или в
package.json
:источник
Общая форма синтаксиса
что означает, что для вашего случая это будет
Из документов npmjs:
источник
Установите его напрямую:
Кроме того, вы можете добавить
"express": "github:visionmedia/express"
в"dependencies"
разделpackage.json
файла, а затем запустить:источник
Вы могли бы также сделать
или
В принципе:
источник
Вы можете напрямую установить github-репозиторий
npm install
командой, например так:npm install https://github.com/futurechallenger/npm_git_install.git --save
ПРИМЕЧАНИЕ. В репозитории, который будет установлен командой npm:
источник
dist
папка или какой-либо код сборки в вашем репо. Вам просто нужно использоватьprepare
скрипт вpackage.json
.Просто :
пример :
источник
Я пытался,
npm install git+https://github.com/visionmedia/express
но это заняло слишком много времени, и я не был уверен, что это сработает.То, что сработало для меня, было
yarn add git+https://github.com/visionmedia/express
.источник
Попробуйте эту команду
эта команда работала для меня.
источник
~/node_modules
, тогда вам никогда не понадобится sudo.