javascript - 如何将 Angular 7 项目直接部署到我的网络服务器,以便我不应该在部署后始终迁移我的 dist 文件夹?

标签 javascript angular

目前,我正在部署我的 Angular 7 项目,方法是使用 FileZilla 将本地文件从 ./dist 文件夹迁移到服务器 public_HTMl。这是一项日常工作,所以我想将代码直接部署到服务器,当我点击 ng build --prod 时,这些编译文件必须直接迁移到服务器。这里有人可以帮我解决这个问题吗?

为了摆脱这个问题,我尝试了很多步骤:

我使用 bitbucket 管道来执行我的代码,它的成本很高,而且我也无法运行它,花了几个小时,但无法为我提供输出。

我还尝试使用新的 Git 存储库,即使这是一个好方法,但无法给我解决方案,因为当我在本地部署代码时,每次执行命令时它都会创建一个新文件夹。

因此,我想获得帮助并将此代码直接部署到将托管我的应用程序的服务器。谢谢大家,希望大家就这个问题给我提供好的建议。

最佳答案

你可以用简单的方法做到这一点。创建基本的 bash/sh 脚本或 Windows 可执行文件并使用 rsync 自动执行此操作:

deploy.sh:

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

为了避免每次都输入登录名和密码,将RSA公钥添加到您的远程计算机(受信任的主机)。您可以将此解决方案与 Bitbucket pipelines 结合使用,当免费计划结束时,我从我的开发人员机器上手动运行此脚本。

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

您可以使用一些更复杂的解决方案,例如Capistrano,而不是简单的脚本。 , Shipit或其他一些更高级的工具。一切都取决于您的需求...

最简单的解决方案总是最好的:)

关于javascript - 如何将 Angular 7 项目直接部署到我的网络服务器,以便我不应该在部署后始终迁移我的 dist 文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56320961/

相关文章:

Angular 7 : Eliminating indexing of column names in the UI

javascript - Chart.js 雷达标签坐标

javascript - Highcharts - 两个类别之间的线

javascript - AJAX 成功后刷新 Div

html - 图标弹出框(Angular 4+)

angular - 无效值错误 : in property origin: not a string; and not a LatLng or LatLngLiteral: not an Object; and not an Object

javascript - 零宽度空间使 HTML 链接无法点击

javascript - 使用 href 链接但不带 # 向元素添加属性

cordova - FileTransfer 返回所有属性的错误 `null`

Angular URLSearchParams 与 HttpParams