remove default env values. correct package json with env vars . #6
Reference in New Issue
Block a user
Delete Branch "edge5modbus"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@@ -11,3 +11,3 @@COPY src ./srcCMD ["npm", "run", "dev"]CMD ["npm", "run", "start"]CMD ["npm", "run", "start"] - это антипаттерн для prod.
npm запускает node как дочерний процесс (например, SIGTERM от Docker при docker stop до node не доходит — контейнер висит 10 секунд до SIGKILL)
prod надо запускать так:
Скрипт
используется во время разработки, чтоб проверить билд после
npm build@@ -4,3 +4,3 @@"type": "module","scripts": {"dev": "tsx watch --env-file=.env src/index.ts","dev": "tsx watch src/index.ts",мы зациклились
"dev": "tsx watch --env-file=.env src/index.ts", - это корректная строчка
потому что это запуск проекта разработчиком
на его, разработчика, компьютере
и переменные окружения он, разработчик, положил в файл .env или .env.* и разумеется хочет чтобы при запуске проекта у него локально, эти переменные окружения из этого файла использовались в его, разработчика, коде.
@@ -7,2 +6,3 @@"dev": "tsx watch src/index.ts","build": "tsc","start": "node --env-file=.env dist/index.js""start": "node dist/index.js"мы зациклились
"node --env-file=.env dist/index.js" - это корректная строчка
потому что это запуск билда разработчиком
на его, разработчика, компьютере
и переменные окружения он, разработчик, положил в файл .env или .env.* и разумеется хочет чтобы при запуске билда у него локально, эти переменные окружения из этого файла использовались в его, разработчика, коде.
Для запуска билда в продакшне мы будем использовать
CMD ["node", "dist/index.js"]
без указания конкретного .env
так как там в продакшн окружении будут указаны свои собственные значения переменных продакшн окружения.
@@ -6,4 +7,4 @@RUN npm ciCOPY tsconfig.json ./COPY public ./publicв проекте нет папки public
(обычно, такую или подобную папку (assets) создают в проекте тогда,
когда нужно использовать какие-то файлы, которые лежат прямо в проекте,
например, файлы маппингов можно было бы вынести в общую папку mappings
и копировать её в контейнер, чтобы быть уверенным, что когда приложению понадобится читать файл маппинга,
то он будет найдет в общей папке mappings. Рекомендую. )
@@ -24,4 +16,0 @@if (Array.isArray(value) &&value.length === REGISTER_COUNT &&Мы зациклились.
Я просил убрать бессмысленные перехваты try .. catch
но не саму валидацию вообще как понятие
просто в случае возникновения исключения, оно и так возникнет и мы узнаем, что возникло исключения
НО
валидацию на то, что в массиве действительно 125 элементов убирать не надо.
вдруг там придёт не 125 элементов - это проблема - и вот тут мы не узнаем, что возникло исключение.