Честно говоря, вам действительно нужна только папка dist, поскольку это JS-файлы "соблюдаются".Чтобы запустить ваше приложение, обычно вы используете эту команду node dist/main.js
.Относительно того, какие файлы вы загружаете, решать только вам.Лично я использую много непрерывной интеграции, поэтому я бы просто клонировал репо в мой контейнер / сервер и использовал yarn start:prod
.Это так, что каждый раз, когда я развертываю, я генерирую необходимые файлы для запуска в производственной среде.
Как упомянуто @Kim Kern, некоторые нодовые модули изначально собраны с использованием node-gyro;поэтому при развертывании всегда лучше создавать ваши node_modules на сервере / контейнере.Ваш сценарий развертывания должен выглядеть примерно так:
git clone git@github.com:myuser/myrepo.git /var/www/
cd /var/www/
node -v && \
yarn && \
yarn build && \
yarn start:prod
Вышеуказанный сценарий должен
1) вывести необходимое хранилище в «размещенный» каталог
2) проверить версию узла
3) установите node_modules и соберите собственные сценарии и т. Д.
4) создайте производственный дистрибутив
5) запустите производственные JS-скрипты
Если вы заглянете в файл package.json, вы заметите различныесценарии, которые запускаются при использовании yarn start
, yarn start:dev
и yarn start:prod
.Находясь в dev, вы заметите использование ts-node
, который является вещью типа бегунка узла машинописи (не могу вспомнить правильную фразу).Также сценарий start:dev
использует нод-режим для перезапуска сценария ts-node
.Вы также увидите, что сценарий start:prod
использует node dist/main.js
и что сценарий prestart:prod
запускает rm -rf dist && tsc
, который удаляет папку dist и «компилирует» javascript, необходимый для производственной среды.
Однако недостаток приложения для машинописи на вашем сервере без непрерывной интеграции состоит в том, что существует вероятность ошибок компиляции машинописи, о которых вы не увидите или не узнаете, пока не запустите сценарии prod.Я бы порекомендовал поместить процедуру на место для компиляции javascipt из машинописного текста перед выполнением развертывания, поскольку вы не хотите удалять текущую сборку dist до того, как узнаете, что будет выпущен и запущен следующий выпуск!