Как развернуть проект angular 7 непосредственно на моем веб-сервере, чтобы мне не приходилось переносить папку dist всегда после развертывания?

В настоящее время я развертываю свой проект Angular 7, используя FileZilla для переноса моих локальных файлов из папки ./dist на сервер public_HTML. Это довольно сложная работа, которую нужно выполнять ежедневно, поэтому я хочу развернуть свой код непосредственно на сервере, когда я нажму ng build --prod, тогда эти скомпилированные файлы должны быть перенесены непосредственно на сервер. Кто-нибудь здесь, кто может помочь мне решить эту проблему?

Чтобы избавиться от этой проблемы, я пробовал много шагов:

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

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

Итак, я хочу получить помощь и развернуть этот код непосредственно на сервере, на котором будет размещено мое приложение. Спасибо всем и надеюсь, что вы дадите мне хорошие советы по этой проблеме.

Означает ли это, что вы используете FTP для отправки файлов на сервер?

user4676340 27.05.2019 08:48

Да, ты правда

Subash Timalsina 27.05.2019 09:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
310
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это простым способом. Создайте базовый скрипт bash/sh или windows executable и используйте rsync, чтобы сделать это автоматически:

развернуть.ш:

#!/bin/bash
ng build --prod
rsync -arvt ./dist remoteuser@remotehost:/var/www/remotedirectory

Чтобы каждый раз не вводить логин и пароль, добавьте Открытый ключ RSA на вашу удаленную машину (доверенный хост). Вы можете комбинировать это решение с Bitbucket pipelines, когда бесплатный план заканчивается, я запускаю этот скрипт вручную с моей машины разработчика.

битбакет-трубопроводы.yml:

image: mycustomimage:latest
pipelines:
  default:
    - step:
        name: Build and deploy to production
        caches:
          - node
        deployment: production
        script:
          - npm install
          - npm install -g @angular/cli 
          - ng config -g cli.warnings.versionMismatch false
          - ./deploy.sh

Вместо простого скрипта вы можете использовать более сложное решение, такое как Капистрано, Отправим его или другой более продвинутый инструмент. Все зависит от ваших потребностей...

Самое простое решение всегда самое лучшее :)

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