Как очистить существующий пакет Meteorite?

Я пытаюсь найти лучший / самый чистый способ раскрутить существующий пакет в Атмосфере в рамках проекта. Я сталкивался с несколькими случаями, когда существующий пакет нуждался в некоторых модификациях, и я был вынужден его разветвить.

Насколько я могу судить, существуют следующие варианты. К сожалению, все они имеют свои проблемы, и мне еще предстоит найти идеальное решение. я используюmeteor-router В качестве примера:

1. Просто скопируйте файлы пакета в вашу папку пакетов

шаги:

Удалить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вы, скорее всего, сломаете все другие среды разработки / развертывания ...

Какой метод вы используете? Как вы обходите недостатки этого метода?

Я мог пропустить некоторые проблемы с этими решениями.

Ответы на вопрос(4)

Ваш ответ на вопрос