Я новичок в node.js. После создания модульного проекта с экспрессом, тестами, .nvmrc и т. д., Наконец, пришло время развернуть приложение. Как это делать? в java вы объединяете свой проект в один файл, содержащий саму себя, и помещаете его на сервер с некоторой конфигурацией. как насчет node.js?
Должен ли я просто скопировать весь каталог с исходными кодами и node_modules на производственную машину и использовать systemd, pm2 или другой диспетчер процессов, чтобы просто запустить его? но я слышал, что некоторые зависимости могут быть системно-зависимыми, поэтому они могут работать некорректно.
или мне следует скопировать только исходники и запустить npm install --production на производственной машине? но таким образом развертывание возможно только тогда, когда репозитории npm находятся в сети. также требуется время, чтобы построить приложение, и это должно быть сделано на всех машинах в кластере. также как насчет быстрого возврата к предыдущей версии в случае ошибки? опять же, нужны репозитории npm времени и онлайн
другой вариант - создать образ докера. но кажется странным, что единственный способ легко и безопасно развернуть приложение - использовать сторонние технологии.
как это делается в реальных жизненных сценариях?





конечно, не копируйте весь каталог, особенно node_modules.
все пакеты, установленные в вашей системе, должны быть установлены с параметром --save. Пример: npm install --save express, если вы это сделаете, у вас будут в package.json зависимости, необходимые для вашего проекта, независимо от того, являются ли они зависимостями разработчика или производственными зависимостями.
Я не знаю, как выглядит структура вашего проекта, но как приложение узла вы должны запустить npm init . в своем проекте, чтобы настроить файл package.json, а затем вы можете начать добавлять свои зависимости с помощью --save.
обычно мы используем git
version control system
для развертывания на сервере, сначала мы помещаем наш код в репозиторий git, затем извлекаем из него на сервер мерзавец
вам нужно добавить .gitignore в свой проект и игнорировать node_modules из-за фиксации в вашем репозитории git.
затем вы можете подключиться к своему серверу и запустить npm install на сервере. и убедитесь, что вам нужно запустить веб-сервер, чтобы служить примером вашего приложения ngnix
вы можете попробовать Heroku для простого развертывания, все, что вам нужно сделать, это настроить свой проект с помощью Heroku, и когда вы отправляете свой код, Heroku управляет развертыванием. Heroku
вам не обязательно использовать nginx, но рекомендуется
зачем мне nginx с приложением node.js express? зачем? nginx не сможет запускать backend js, верно?