2016-08-25 7 views
0

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

Я использую aldeed: AUTOFORM пакет и нашел пару ошибок & подали PR для него (https://github.com/aldeed/meteor-autoform).

Олдид, являющийся единственным сопровождающим множества популярных пакетов, становится узким местом для объединения PR & после устранения проблем. Моим решением было разветвить его проект & опубликовал мою вилку по атмосфере.

наивности, я просто снял пакет meteor remove aldeed:autoform и попытался добавить мину: meteor add metakungfu:autoform

Когда я загрузить мое приложение, я получаю следующее сообщение об ошибке: enter image description here

Package['aldeed:autoform'] возвращает ожидаемый объект, даже если я удалил пакет.

Для полноты, я использую кучу других пакетов, которые зависят от aldeed: autoform, и я предполагаю, что именно по этой причине aldeed: autoform пакет по-прежнему присутствует.

Вопросы:

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

  • Это правильный способ решить мою проблему?

ответ

0

Я в конечном итоге с помощью mgp для управления пакетами. Для того, чтобы решить мою проблему, я должен был сделать две вещи:

Во-первых, добавьте git-packages.json в корневом каталоге вашего проекта, который выглядит следующим образом:

➜ cat git-packages.json 
{ 
    "aldeed:autoform": { 
    "git": "[email protected]:gregory/meteor-autoform.git", 
    "branch": "dev" 
    } 
} 

Это будет работать локально, но если вы развернитесь на геройку, buildpack потребуется установить mgp & установить зависимости.

Я просто opened a PR to fix this

0

Вилка всех зависимостей и указание их на вашу вилку.

+0

, что вероятно, будет работать, но было бы очень грустно делать :) - это значит, что вы должны будете поддерживать все эти вилки в любое время есть обновление ... – metakungfu

0

Вместо того чтобы публиковать свою собственную версию aldeed:autoform на Атмосфере, вы должны использовать ее в качестве локального пакета, сохраняя его имя неповрежденным. Метеор будет смотреть сначала на ваши местные пакеты, прежде чем пытаться извлечь из Атмосферы.

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

Чтобы сделать это, см: Why does Meteor's aldeed/meteor-tabular package get stuck processing and never render a result?

Ссылка: Meteor Guide > Build > Writing Atmosphere Packages > Overriding packages with a local version

+0

Не грустно ли вам копировать/пропускать кучу файлов в ваш проект и терять версию? Разве нет способа, которым я мог бы использовать решение для управления пакетами, где я мог бы иметь autoform, чтобы указать на свою вилку? это было бы идеально ... - По крайней мере, метеорит имел возможность указать на вилку: https://github.com/oortcloud/meteorite#usage – metakungfu

+0

Уверен, у вас есть много вариантов: от git-подмодулей до npm с символическими ссылками ... Единственное требование - получить в конце свою собственную версию в '/ packages' с тем же именем, что и исходный пакет. – ghybs