Подтвердить что ты не робот

Bower, регистрирующий локальный пакет git

Как я могу зарегистрировать локальный пакет git в bower?

Мой текущий компонент .json выглядит следующим образом

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "twitter/bootstrap": "2.1.1"
  }
}

Однако я также хотел бы добавить пакет, который я создал в C:/mypackage, который представляет собой репозиторий git с тегами с версиями. Когда я делаю bower install --save C:/mypackage, он правильно добавляет его в проект, но не добавляет его в мой компонент. Json.

Я пытаюсь bower register mypackage C:/mypackage, но он продолжает давать мне

bower error Incorrect format

Что я делаю неправильно?

4b9b3361

Ответ 1

Вариант 1: Регистрация публичной банировки

Bower построена в основном для совместного использования общедоступного (клиентского) кода с помощью "ненаучного" способа. Таким образом, основным вариантом использования является наличие общедоступного репозитория (в GitHub), который register d с именем и URL-адресом репозитория git. Я просто сделал это сам:

bower register linksoup git://github.com/automatonic/linksoup

Это просто говорит серверу bower, что когда вы install linksoup переходите и захватываете код в репозитории git://github.com/automatonic/linksoup и помещаете его в локальный проект component.

Если это то, что вы хотите сделать, просто настройте репозиторий на github/etc., нажмите там свой код, а затем register с результирующей информацией репозитория.

Вариант 2: Частная зависимость

Есть много причин не размещать свой код в общедоступном репозитории. Возможно, он не является открытым исходным кодом и т.д., Если ваш mypackage код не должен быть общедоступным, тогда вы, вероятно, не должны быть register на нем на общедоступном сервере bower... Кроме того, даже если бы вы могли register локальный каталог, он будет работать только на вашей машине..., которая поражает цель совместного использования кода с помощью беседки.

Если вы просто хотите, чтобы bower управлял локальной, частной зависимостью, я собираюсь избавиться от решения brahead:

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "twitter/bootstrap": "2.1.1",
    "mypackage": "file:///path/to/mypackage/.git"
  }
}

Это просто говорит, что myproject требуется mypackage, и использовать клон git для его получения. Я предполагаю, что это может использовать что-нибудь, что git может понять (включая локальные репозитории). Но вы должны заметить, что это может столкнуться с проблемами для тех, кто работает над этим кодом, который не может получить доступ к вашему локальному пути.

Лучший угадай

Мне кажется, что вы предположили, что bower register была локальной операцией (рассказывая, как найти зависимость через какой-то локальный реестр). Насколько я могу судить, это только удаленная и публичная регистрация, поэтому это не поддерживается.

Вы также можете найти способ сделать что-то вроде операции с npm. То есть работа над модулем зависимостей, не всегда включающая ваш цикл dev, включает публикацию.

Немного подробная информация о том, сколько людей задействовано и что вы пытались выполнить, облегчит более целенаправленный ответ.

Ответ 2

Вы можете добавить любой репозиторий git следующим образом:

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "twitter/bootstrap": "2.1.1",
    "myrepo":"git://myrepo.com/myrepo"
  }
}

Ответ 3

Вы можете использовать bower link:

Функциональность ссылок позволяет разработчикам легко тестировать свои пакеты. Связывание - это двухэтапный процесс.

Использование 'bower link' в папке проекта создаст глобальную ссылку. Затем в другом пакете "bower link" создаст ссылку в папке компонентов указывая на ранее созданную ссылку.

Это позволяет легко протестировать пакет, потому что изменения будут немедленно отображены. Обратите внимание, что bower не будет получать связанные зависимости пакета.

Bower перезапишет ссылку при установке/обновлении.

Ответ 4

Большая идея с bower заключается в том, чтобы легко делиться зависимостями ваших проектов. Поэтому использование локального репо должно быть ограничено тестированием.

Как только вы это понимаете, вы должны знать, что это не обязательно необходимо для register вашего пакета, чтобы использовать его в качестве зависимости.

Это связано с тем, что параметр bower depencency может указывать либо версию, либо папку, либо пакет. Таким образом можно использовать локальный репозиторий.

Определить в качестве пакета пайки

Сначала вам нужно определить вашу зависимость как пакет bower:

# create the bower package
cd /path/to/you-need-me
bower init
# answer questions…

Добавить как зависимость проекта

Затем в вашем основном проекте, который нуждается в зависимости you-need-me, отредактируйте bower.json файл, чтобы добавить (или развернуть):

  "dependencies": {
    …
    "you-need-me":  "file:///path/to/you-need-me/.git/"
    "you-need-me-windows":  "C:/path/to/you-need-me-windows/.git/"
  }

Таким образом, вы не предоставляете версию, а локальную конечную точку git, т.е. подкаталог .git/.

Установить зависимость

В man-проекте установите зависимости bower с помощью:

cd /path/to/main-project/
bower install

Отказ

bower you-need-me#*              ENOTFOUND Package /path/to/you-need-me/ not found

Проверьте свой путь и укажите, что вы указали в каталоге .git/ вашей зависимости.

Успех

Вы должны получить что-то вроде:

bower you-need-me#*             not-cached file:///path/to/you-need-me/.git/#*
bower you-need-me#*                resolve file:///path/to/you-need-me/.git/#*
bower you-need-me#*               checkout master
bower you-need-me#*               resolved file:///path/to/you-need-me/.git/#b18c753c6f
bower you-need-me#*                install you-need-me#b18c753c6f

Напишите запись в блоге об этом: Тестирование bower.json локально перед регистрацией пакета.