NPM - как развернуть проект на реальном сервере, когда есть обновления - PullRequest
1 голос
/ 03 апреля 2019

Я использую следующий скрипт при обновлении окончательных кодов на 'git master' на реальном сервере.

git fetch origin
git reset --hard origin/master

rm -rf /var/www/html/projectA/node_modules/
rm /var/www/html/projectA/package-lock.json
rm /var/www/html/projectA/public/js/react/entry.js // This is SPA
rm /var/www/html/projectA/public/mix-manifest.json

npm install --save
npm run production

// the following is Apache restarting...

Мне было интересно, правильный ли метод развертывания.Существуют методы, подобные следующему:

1) приведенный выше пример

2) на реальном сервере, только

git fetch origin
git reset --hard origin/master

npm run production

3) создание SPA на локальном илиАльфа-сервер и на реальном сервере, сделайте только это.

git fetch origin
git reset --hard origin/master

Я пробовал оба 1) и 2), но позже я обнаружил ошибки в случае 2), что означает, что ошибок не былона моем локальном, но позже были обнаружены ошибки на реальном сервере при обновлении.

Не могли бы вы сообщить мне, есть ли хорошие способы развертывания ваших проектов на реальном сервере?

1)и 2) занять много времени, но в случае 3) я не знаю, является ли это распространенным и безопасным.По моему опыту, socket.io не работал в 3).

1 Ответ

0 голосов
/ 03 апреля 2019

1) должно быть:

git fetch origin
git reset --hard origin/master

// node_modules is required for npm run production
// rm -rf /var/www/html/projectA/node_modules/

// package-lock.json is required to lock the package version, to make it work like your local environment
// rm /var/www/html/projectA/package-lock.json

// Usually would overwrite them when running npm run production
// rm /var/www/html/projectA/public/js/react/entry.js // This is SPA
// rm /var/www/html/projectA/public/mix-manifest.json

npm install --save
npm run production

Это правильная процедура для обновления сервера.

2) не npm install, как вы можете запустить npm run production?

3) также является одним из жизнеспособных решений. Однако некоторым людям это не нравится, потому что они не хотят хранить производственные (сборочные) файлы в своих git. Поскольку это занимает место, и ваша команда должна загружать их для разработки, даже если они им не нужны. Git предназначен для управления исходным кодом вместо выпуска.

...