-
-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mam для разработки бекенда #454
Comments
хотя наверно, проблема долгой сборки в том что каждый раз на холодную запускаю
В ручных подсчетах еще несколько файлов не учел, сделал сборку только нодовских файлов, получилось 25 - 30 секунд позже попробую автоперезапуск со слежением прикрутить |
|
|
Есть идя как сделать автосборку сервера. Девсервер слуiает запросы вида |
Если я правильно понял: такое не будет работать если фронт с сервером по сокетам общаются? |
Почему же, вполне будет. Сокет соединение разорвётся, клиент попытается переконнектится и поднимет сервер. |
Problem
Пока несколько кейсов встретил, решил в все в одном ишью завести.
Сборка не нужных файлов. Сейчас запуск
yarn start path/to
занимает у меня 45 - 60 секунд. Причем нужные файлы:node.deps.js node.js node.test.js
собираются за 0.425 + 3.555 + 5.502 = 9.482 секундыАвтоперезапуск. Сейчас цикл выглдяит так: правлю код -> руками запускаю сборку -> руками запускаю бандл.
Если в бандле есть запуск долгоживущих процессов, типа http.server.listen(), то надо в тестах шаманить с process.exit(0)
Добавление используемых пакетов в сгенерированный package.json. Я добавил в mam_lib пока локально, пакет pg для постргесс. Руками установил его в mam. В сгенерированном package.json его нет
Не хватает неймспейсов для переопределения класса для бекенда в node.ts, $ и $$ занят фронтовским компонентом =)
Solution
В теории можно ускорить сборку, если будет возможность сказать сборщику собирай мне только нодовский бандл. Например добавить параметр типа 'target=node|all'. Еще можно посмотреть в сторону, что если у пакета есть node.ts файлы, и нету web.ts и просто .ts то собирать только нодовский бандл.
Тут не такая большая проблема, я могу сам подключить nodemon и запускать как-то так: `nodemon "yarn start path/to" && "node path/to/-/node.js". Вообще было бы удобно что бы дев сервер, мог запускать нодовские сервера.
Например у меня сейчас в проекте два сервера:
Сам проект - поднимается http сервер и все полученные запросы пишет в базу. Фронт позволяет смотреть какие запросы и когда пришли
и фронт
Идеальный вариант что бы при выборе нужного модуля в файловом-менеджере в браузере, dev сервер мог сам запустить оба сервера. Например что бы новый разраб, запустил одну команду и у него все поднялось, не надо было разбираться. Еще база данных запускается в докере, было бы классно что бы она тоже поднималась.
В теории весь запуск дев серверов можно прописать в докере, но как понимаю это удобно только линукс пользователям на винде с докером не так удобно.
Тут наверно надо самому делать не безусловный запуск долгоживущих процессов, а по какому-нибудь параметру из командной строки.
Было бы удобно не тащить дополнительный package.json с нужными зависимостями из npm. А что бы они добавлялись в генерированный package.json
Хотел сервер, который сохраняет http запросы запилить в корневом .ts файле. Например у меня проект лежит в aspirity/restmock, есть файлы:
Вообще, не большая проблема, могу другое имя использовать
Как итог
Нужно добавлять какие-то дополнительные инструкции в meta.tree (сборка требуемых бандлов , добавление зависимостей в package.json , запуск дополнительных серверов)
и/или придумывать соглашения
The text was updated successfully, but these errors were encountered: