Как зарегистрировать локальный пакет git в Bower?
Как я могу зарегистрировать локальный пакет git в bower?
Мой текущий component.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
он правильно добавляет его в проект, но не добавляет его в мой component.json.
я стараюсь bower register mypackage C:/mypackage
но это продолжает давать мне
bower error Incorrect format
Что я делаю неправильно?
4 ответа
Вариант 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.
Если вы просто хотите, чтобы bower управлял локальной, частной зависимостью, тогда я собираюсь отказаться от решения болванки:
{
"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 clone для его извлечения. Я предполагаю, что это может использовать все, что может понять git (включая локальные репозитории). Но вы должны заметить, что это может столкнуться с проблемами для тех, кто работает над этим кодом и не может получить доступ к вашему локальному пути.
Лучшая догадка
Мне кажется, что вы могли предположить, что bower register
была локальная операция (рассказывающая, как найти зависимость через какой-то локальный реестр). Насколько я могу судить, это только удаленная и общедоступная регистрация, поэтому она не поддерживается.
Вы также можете искать способ сделать что-то вроде операции ссылки с npm. То есть работа с модулем зависимостей не всегда должна включать в ваш цикл разработки публикацию.
Небольшая информация о том, сколько людей задействовано и что вы пытались сделать, облегчит более целенаправленный ответ.
Вы можете добавить любой репозиторий git следующим образом:
{
"name": "myproject",
"version": "1.0.0",
"dependencies": {
"jquery": "1.8.0",
"twitter/bootstrap": "2.1.1",
"myrepo":"git://myrepo.com/myrepo"
}
}
Ты можешь использовать bower link
:
Функциональность ссылки позволяет разработчикам легко тестировать свои пакеты. Связывание - это двухэтапный процесс.
С помощью
bower link
в папке проекта создаст глобальную ссылку. Затем в какой-то другой упаковке,bower link <pkg>
создаст ссылку в папке компонентов, указывающую на ранее созданную ссылку.Это позволяет легко протестировать пакет, потому что изменения будут отражены немедленно. Обратите внимание, что bower не будет извлекать связанные зависимости пакета.
Bower перезапишет ссылку при установке / обновлении.
Большая идея с bower
легко делиться зависимостями ваших проектов. Поэтому использование локального репо должно быть ограничено тестированием.
Как только вы поймете это, вы должны знать, что это не является строго register
ваш пакет, чтобы использовать его в качестве зависимости.
Это связано с тем, что зависимость bower может указывать либо версию, папку или пакет. Таким образом, вы можете использовать локальный репозиторий.
Определить как пакет беседки
Сначала вам нужно определить свою зависимость как пакет 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 перед регистрацией пакета.