У меня есть приложение для малого и среднего размера, использующее метеор 1.5, реакцию и сокращение. Долгое время я испытывал ужасающие моменты запуска около 3-4 минут. В моем приложении используются пакеты npm, пакеты метеоров и локальные пакеты метеоров. Мне удалось удалить кучу ненужных локальных пакетов, и я получил время сборки до 2+ минут, но это не продлилось, и теперь это до буквально 20 минут.
Я пробовал использовать профилировщик метеоров много раз, и, хотя время, которое он сообщает, по-прежнему само по себе неприемлемо, они намного короче, чем фактическое время загрузки. Основная часть ожидания начинается между завершением шага "prepareProjectForBuild" и началом этапа "Создание приложения", где профилировщик ничего не выводит. Когда шаг "Build App" завершается, он утверждает, что занял около 200 секунд. Тем не менее, время от времени наступает время ИМО, но я бы убил его в этот момент.
У меня есть проект аналогичного размера и сжимают время сборки примерно до 1 мин. Я могу только сказать вам из моего опыта, что я сделал, чтобы сократить время сборки:
A - Кодовые соображения
1. Переместить как можно больше "ручной" код в заводские методы
Это означает, что аналогичный код создания, который много повторяет, может быть легко сведен к нескольким функциям фабрики. Это также улучшает охват тестированием.
Куда:
2. Не возитесь с тысячами круговых импортных
Это не разрушает ваше приложение. Но сохранение четкой и инкапсулированной структуры может сократить время поиска на импорт. Делает ваш код более удобным для обслуживания.
3. Переместите файлы ресурсов из вашего проекта
Я знаю, что это сложно, особенно когда структуры с течением времени затягиваются. Но когда мне пришлось переместить все мои файлы активов в cdn и ссылаться только на пути, которые он дал хороший импульс для моего времени сборки.
4. Зависимости Npm в пакетах
Вместо жесткой проводки npm в ваших пакетах (или тех, где вы находитесь под контролем) вы можете использовать
tmeasday:check-npm-versions
для мягкого обращения к ним, чтобы ваше приложение метеоритов отвечало за их управление, уменьшая количество попыток npm для пакетов dedupe.
5. Переместитесь на галлон, где это возможно
Придет время, когда метеор в любом случае переместится на галлон. Поэтому сделайте пакеты пакетов npm, где это возможно, и сохраните время сборки позже.
редактировать:..................................................
6. Извлеките сервисы из своего приложения в автономные службы
Когда у вас есть службы, которые обслуживают только одну функцию, выведите их из своего приложения. Это может применяться для:
..................................................
B - Другие соображения
1. Не разрабатывайте метеор в Windows (если вам не нужно)
Этот совет немного испорчен, потому что я не могу сказать вам, почему, но я видел на нескольких машинах (мой собственный, vm, коллеги, на рабочем месте) способ медленного обновления, сборки и сборки пакетов, чем на Linux или Mac. Компиляция собственного кода, такого как bcrypt, здесь медленно, как черт. Может быть, у кого-то есть понимание?
2. SSD делает все быстрее
Здравый смысл уже.
Примечание. Я не могу сказать, насколько хорошим является повышение одним из описанных методов. Я просто пробовал все это с течением времени и со временем стал хорошим.