Как установить и развернуть приложение node.js?

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

Должен ли я просто скопировать весь каталог с исходными кодами и node_modules на производственную машину и использовать systemd, pm2 или другой диспетчер процессов, чтобы просто запустить его? но я слышал, что некоторые зависимости могут быть системно-зависимыми, поэтому они могут работать некорректно.

или мне следует скопировать только исходники и запустить npm install --production на производственной машине? но таким образом развертывание возможно только тогда, когда репозитории npm находятся в сети. также требуется время, чтобы построить приложение, и это должно быть сделано на всех машинах в кластере. также как насчет быстрого возврата к предыдущей версии в случае ошибки? опять же, нужны репозитории npm времени и онлайн

другой вариант - создать образ докера. но кажется странным, что единственный способ легко и безопасно развернуть приложение - использовать сторонние технологии.

как это делается в реальных жизненных сценариях?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
268
1

Ответы 1

конечно, не копируйте весь каталог, особенно 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 с приложением node.js express? зачем? nginx не сможет запускать backend js, верно?

piotrek 04.11.2018 21:02

вам не обязательно использовать nginx, но рекомендуется

mohammad zein 04.11.2018 21:11

Другие вопросы по теме