Как развернуть непрерывно работающее приложение при использовании npm -cli - PullRequest
1 голос
/ 03 марта 2020

У меня есть веб-приложение на основе largi sh nodejs, в котором компоненты сервера и клиента работают вместе. В настоящее время я развертываю приложение, но использую git pull, чтобы взять мою последнюю производственную ветку из репозитория сервера. Хук git post-commit запускается для выполнения npm install и перестройки файла .env серверов, а PM2 отслеживает различные процессы (3 веб-сервера), используя изменения в файле .env для их перезапуска.

node_modules находится на самом высоком уровне проекта с отдельными подкаталогами сервера и клиента. Так как это использует http2 на быстрой локальной сети, я не беспокоюсь о сжатии файлов клиента с помощью веб-пакета или чего-то подобного, хотя я использую сведение на lit-element и lit-html для сортировки операторов импорта (они не являются относительный или абсолютный), что они в них встроены.

Я только что читал, что действительно должен был сделать npm ci для моих зависимостей узлов, но читая инструкции, в которых говорится, что он уничтожает каталог node_modules и запускается снова (тогда как npm install не делает). Так как все это работает на малиновом пи, это не мгновенно.

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

Итак, что является лучшей практикой здесь. Можно ли, например, скопировать package.json, package-lock.json в специальный подкаталог build, построить там каталог node_modules, а затем переместить его на место. Однажды построенный. Или есть лучший способ?

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