У меня есть (демо) приложение, размещенное на Heroku. Я включил в Heroku функцию «обзор приложения», чтобы ускорить создание новых экземпляров для проверок по запросу. Все эти обзорные экземпляры получают новую MongoDB (на mLab) для них через дополнительную систему Heroku. Это прекрасно работает.
В моем репозитории я определил несколько сценариев сеялки для быстрого запуска и запуска тестовой базы данных. Запуск yarn seed
(или npm run seed
) заполнит базу данных тестовыми данными. Это прекрасно работает во время разработки, и было бы идеально для просмотра приложений. Я хочу выполнить команду seeder в хуке postdeploy
приложения обзора Heroku, что можно сделать, указав его в разделе environment.review
файла app.json
. Вот так:
{
"name": "...",
"addons": [
"mongolab:sandbox"
],
"environments": {
"review": {
"addons": [
"mongolab"
],
"scripts": {
"postdeploy": "npm run seed"
}
}
}
}
Проблема в том, что сценарий сеялки зависит от некоторых зависимостей только для разработки (faker
, ts-node
[это проект TypeScript] и mongo-seeding
) для выполнения. И эти зависимости недоступны на этапе postdeploy
приложения Heroku.
Я также не думаю, что «компиляция» машинописного текста на обычном этапе сборки - лучшая идея. Этот скрипт сеялки используется только в разработке (и обзорах приложений). Кроме того, я не уверен, что это решило бы проблему с отсутствующими зависимостями, такими как faker
.
Как один go об этом? Какие уловки мне не хватает?
Можно ли пропустить шаг Heroku, где он активно удаляет зависимости разработки? Но только для просмотра приложений? Или, что еще лучше, могу ли я "исключить" только ту пару зависимостей, которая мне нужна, и только для приложений для проверки?