Как очистить существующий пакет Meteorite?
Я пытаюсь найти лучший / самый чистый способ раскрутить существующий пакет в Атмосфере в рамках проекта. Я сталкивался с несколькими случаями, когда существующий пакет нуждался в некоторых модификациях, и я был вынужден его разветвить.
Насколько я могу судить, существуют следующие варианты. К сожалению, все они имеют свои проблемы, и мне еще предстоит найти идеальное решение. я используюmeteor-router
В качестве примера:
шаги:
Удалитьpackages/router/.git/
редактироватьpackages/.gitignore
и удалитьмаршрутизатора линияудалить роутер из вашегоsmart.json
добавлятьpackages/router
в ваш репозиторий проекта и зафиксироватьТеперь внесите изменения (таким образом, ваш первоначальный коммит является чистой версией, и вы можете сами отработать то, что вы изменили)Преимущества:
легко достичь и понятьвесь код, на который вы полагаетесь, можно найти в репозитории вашего проектаНедостатки:
вы потеряете всю оригинальную историю репозиториевЭто'трудно обновить до новой версииЭто'трудно внести ваши изменения обратно в первоначальный проектДаже не рассматривайте это ни для каких, кроме самых простых пакетов!
2. Вилка на github, потом ...Чтобы получить пакет на github, вы можете проверить вашsmart.lock
файл, чтобы увидеть, какой репозиторий используется. Перейдите на страницу github этого хранилища и разветвите его.
Далее у вас есть три варианта:
2а. Добавьте его как подмодуль gitБольше информации о подмодулях git:http://git-scm.com/book/en/Git-Tools-Submodules
шаги:
Смотрите ссылку выше о том, как инициализировать / создать / обновить субмодульУдалить пакет из вашегоsmart.json
Преимущества:
Подмодульные версии связаны с вашим проектомИзменения сразу принимаютсяНедостатки:
Все разработчики должны запуститьgit submodule init
первый раз иupdate
обновлятьВы должны знать о проблемах с подмодулями при редактировании оформления заказаЧитайте о других проблемах с подмодулями2b. Изменить ваш проектsmart.json
использовать вашу версиюшаги:
В вашемsmart.json
, находить"router": {}
и добавить"git": "https://github.com/USER/meteor-router.git"
внутри пусто.{}
При желании добавьте"branch"
или же ."tag"
Преимущества:
Вы все еще можете использовать Meteorite для управления внешними пакетамиБудет работать автоматически для других разработчиков и в средах развертыванияНедостатки:
Код в вашей папке пакетов не редактируется, так какне репозиторий мерзавцаMeteorite не будет автоматически обновляться до последней версии при каждом запуске(Предлагаемое улучшение Meteorite: разрешить установку пакетов в редактируемой форме, например, Python 'пипс позволяет использовать '-e» параметр)
2с. Клонировать вне вашего проекта и добавить"path"
вsmart.json
шаги:
Клонировать пакет в место за пределами вашего проектаАналогично 2b, добавьте"path"
на вашsmart.json
указать Метеорит на ваш местный контрольПреимущества:
Вы можете редактировать пакет по желанию, и Meteor автоматически получит изменения.Недостатки:
Если вы делаете этоsmart.json
вы, скорее всего, сломаете все другие среды разработки / развертывания ...Какой метод вы используете? Как вы обходите недостатки этого метода?
Я мог пропустить некоторые проблемы с этими решениями.