2014-11-12 3 views
2

Попытка порт Crowducate от Meteor 0.8 до 1.0. Я запустил «обновление метеоров». Результаты можно увидеть в этой отрасли: https://github.com/Crowducate/crowducate.me/commit/bc1c8fa81a23fda586980d4803803ef701c762c5Meteor.js 1.0: в чем разница между пакетами и файлами версий?

Так мои вопросы:

  • Почему версия файл был создан (вместо обновления файла пакеты)?
  • Является ли файл версии каким-то образом переопределять файл пакета, нужны ли мне оба файла?

Больше информации можно найти в этих GitHub-вопросов: Porting to Meteor 1.0 и flatten external packages into repo

Любая помощь приветствуется.

ответ

2

Метеор определяет, какие функции следует добавить в проект, используя файл packages. Он содержит имена пакетов, таких как email или iron:router. Это агностик версии Meteor, которую вы запускаете, что в конечном итоге приведет к серьезным проблемам, если у вас нет сопоставления того, какие версии пакетов подходят для работы (то есть, как известно, хорошо работают вместе).

Файл versions дополнительно указывает, какие фактические версии пакетов вы используете в проекте. Вы можете указать версию, используя meteor add package:[email protected].

В каждой упаковке есть третья (скрытая) информация о версиях, которая определяет, с какими другими пакетами она хорошо работает (см., Например, this). Они определяют, какую минимальную версию они требуют, что-то лучше, вероятно, также будет работать. Здесь вы найдете интеллектуальную схему управления версиями.

В пакетах Meteor используется семантическое управление версиями, поэтому вы можете лучше сказать, что произойдет с обновлением. Семантическое управление версиями означает, что каждый выпуск состоит из major.minor.patch, например. x.y.z или 1.1.0. Патчи не изменяют функциональность, поэтому любое изменение z будет безвредным. Изменения второстепенного или y не должны нарушать существующий API. Могут быть добавлены новые функциональные возможности или существующие API могут быть изменены/устарели. Изменения в major/x, вероятно, вносят изменения в разрыв, а также ломают зависимые пакеты.

Вы можете найти более подробную информацию на странице Arunoda в: https://meteorhacks.com/meteor-packaging-system-understanding-versioning.html

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

+0

Thx! это очень помогло. шаг за шагом мы получим это значение 1.0. –

Смежные вопросы