广告
返回顶部
首页 > 资讯 > 精选 >Angular怎么编译打包并使用Docker发布
  • 938
分享到

Angular怎么编译打包并使用Docker发布

2023-06-15 09:06:39 938人浏览 安东尼
摘要

这篇文章给大家分享的是有关angular怎么编译打包并使用Docker发布的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。环境:Angular CLI: 11.0.6Angular: 11.0.7node: 12.

这篇文章给大家分享的是有关angular怎么编译打包并使用Docker发布的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

环境:

  • Angular CLI: 11.0.6

  • Angular: 11.0.7

  • node: 12.18.3

  • npm : 6.14.6

  • IDE: Visual Studio Code

1. 概要

当我们完成angular的开发后,如何部署到服务器呢?【相关教程推荐:《angular教程》】

2. 编译打包

2.1. 基本打包命令

基于Angular CLI生成的Angular项目,默认会有2个环境配置文件

└──myProject/src/environments/               └──environment.ts               └──environment.prod.ts
  • environment.ts: 针对开发环境使用的环境文件

  • environment.prod.ts: 生产环境编译时,将替换原有的environment.ts,然后再打包。 (根目录下的angular.JSON定义了这个默认行为,有需要,可以进行修改)

AngularCLI刚刚生成2个文件后,如果打开比较2个文件的区别,可以看到开发环境使用的environment.ts文件中,有这么一句production: false。因为,针对生产环境,angular在编译时需要核心考虑效率等问题,而开发环境,要考虑方便开发者进行调试,侧重点不同。

那么针对生产环境如何编译呢?Angular CLI同样提供了命令,

ng build --prod

其中,参数--prod 即告诉编译环境,编译为生产环境包。同样,angular.json中定义了默认的编译参数,如果需要,可以进行修改。主要配置参数如下

"configurations": {    "production": {        "fileReplacements": [        {            "replace": "src/environments/environment.ts",            "with": "src/environments/environment.prod.ts"        }        ],        "optimization": true,        "outputHashing": "all",        "sourceMap": false,        "extractCSS": true,        "namedChunks": false,        "aot": false,        "extractLicenses": true,        "vendorChunk": false,        "buildOptimizer": false,        "budgets": [        {            "type": "initial",            "maximumWarning": "5mb",            "maximumError": "10mb"        }        ]    }}

Angular默认打包到根目录下的dist目录下,生成的文件为纯静态文件(html, css, js),以及图片文件。

2.2. 打包部署到二级目录

有不少情况,我们的angular WEB站点不能直接部署到网站的根目录下,需要部署到二级目录下。 比如,不能部署到 Http://abc.com下,要求部署到 http://abc.com/demo 这个二级目录下。针对这种情况,就需要修改一下我们的编译参数,修改为:

ng build --prod --deploy-url /demo/ --base-href /demo/

增加 --deploy-url--base-href

使用场景:比如我们有多个站点,希望使用同一个反向代理, http://site1, http://site2, 分别映射到 http://abc.com/site1, http://abc.com/site2/。 那么为了方便配置,需要把site1, site2都部署到二级目录,如http://site1/site1, http://site2/site2。 然后 http://site1/site1代理到http://abc.com/site1, http://site2/site2代理到http://abc.com/site2/, 免得css、js因为目录级别问题找不到。

3. Angular站点的发布

Angular站点编译打包后,可以方便的发布到已有web服务器,或者打成docker image, 然后发布。

3.1. web服务器发布

因为我们打包后,生成的文件为纯静态文件(html, css, js, 图片等), 所以打包后的问题,可以直接copy到iis, Nginx , apache Tomcat等web服务器,或者node.js, java等可以显示静态文件的程序的目录下即可。

3.2. 使用docker发布

如果部署到docker,我们可以基于一个基础的nginx docker, 然后把编译好的angular项目,copy到docker 内的nginx目录下即可。

基本步骤:

  • 准备Dockerfile 文件, docker可以基于nginx:alpine, 将编译好的angular 站点文件复制到 docker 的nginx默认目录 /usr/share/nginx/html

FROM nginx:alpineCOPY . /usr/share/nginx/html

说明: 1) 假设angular打包后的文件,与Dockerfile文件在同一个目录
2) COPY . /usr/share/nginx/html, 两个参数 . 代表当前路径, /usr/share/nginx/html是docker中的目标目录

  • 编译docker。 在Dockerfile目录下,执行

docker build -t your-docker-name .docker save your-docker-name > your-docker-name.targzip your-docker-name.tar

三条命令分别为:

  • 生成docker image, 名字(name)为your-docker-name

  • 导出docker image为本地文件, 文件名为 your-docker-name.tar

  • 压缩docker image

可以看到,因为angular编译后为纯静态文件,所以使用docker发布非常简单。部署时,只需要复制docker文件到目标机器,解压缩,然后执行 docker load < your-docker-name.tar 即可加载docker image到目标机器。

4. 总结

  • 为生产环境编译,一定要加参数--prod

  • 如果要部署到二级目录,编译时加参数。如部署到/demo二级目录下,加参数: --deploy-url /demo/ --base-href /demo/

  • 使用docker发布,可以选择基本的nginx docker, 然后将编译好的angular文件copy到nginx目录下即可。

感谢各位的阅读!关于“Angular怎么编译打包并使用Docker发布”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Angular怎么编译打包并使用Docker发布

本文链接: https://www.lsjlt.com/news/279335.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Angular怎么编译打包并使用Docker发布
    这篇文章给大家分享的是有关Angular怎么编译打包并使用Docker发布的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。环境:Angular CLI: 11.0.6Angular: 11.0.7Node: 12....
    99+
    2023-06-15
  • Shell脚本构建Docker 半自动化编译打包发布应用操作
    Docker 发布的方式为实现DevOps(自动化运维,需要配置 代码管理工具如Git的hook来实现提交编译、打包、发布等一系列事件控制)提供了诸多方便,辅助于Shell脚本可以很...
    99+
    2022-11-12
  • 使用Docker部署打包发布springboot项目
    目录前言第一:环境第二:开始描述从搞项目到docker发布:第四:各种错误教训集合。前言 从安装docker到多种方式打包发布,编译,镜像,容器等问题,遇到种种问题,终于不负所望,一...
    99+
    2022-11-13
  • 怎么发布打包并发布自己的Android应用(APP)
    第一步,在Eclipse中选择需要打包的项目,然后右键--选择Export,会弹出一个打包的提示框,如下图所示。 按Next之后,会继续出现一个提示框,这里你可以选择自己需要...
    99+
    2022-06-06
    并发 app Android
  • 如何使用Docker部署打包发布springboot项目
    这篇文章将为大家详细讲解有关如何使用Docker部署打包发布springboot项目,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言从安装docker到多种方式打包发布,编译,镜像,容器等问题,遇到种种...
    99+
    2023-06-29
  • Go 中的并发编程:如何使用 PATH 打包并发?
    Go 语言是一门支持并发编程的语言,具有高效和简洁的特性。PATH 是 Go 中的一种并发编程模型,它可以帮助程序员在并发编程过程中更加方便地管理和控制协程的执行。在本文中,我们将探讨如何使用 PATH 打包并发,以及如何编写高效的并发代码...
    99+
    2023-10-01
    path 打包 并发
  • Go 编程:如何使用 PATH 打包并发?
    在 Go 编程中,PATH 是一个非常重要的概念。它是用于设置环境变量的一个列表,其中包含了一系列路径,这些路径指示了操作系统在哪里查找可执行文件。在本篇文章中,我们将深入探讨如何使用 PATH 打包并发。 在 Go 中,我们可以使用 P...
    99+
    2023-10-01
    path 打包 并发
  • 如何使用Go和Apache打包并发布Git代码?
    Git是目前最流行的版本控制系统之一,而Go语言则是一种高效的编程语言。本文将介绍如何使用Go和Apache打包并发布Git代码。 1.安装Go 首先,您需要安装Go。可以从官方网站https://golang.org/下载最新版本的Go...
    99+
    2023-11-04
    apache 打包 git
  • 怎么使用docker打包依赖环境
    使用Docker打包依赖环境可以通过以下步骤进行: 创建一个Dockerfile文件:在项目根目录下创建一个名为Dockerfi...
    99+
    2023-10-24
    docker
  • 怎么用Python将库打包发布到pypi
    小编给大家分享一下怎么用Python将库打包发布到pypi,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 注册pypi账号并创建token首先访问https:...
    99+
    2023-06-14
  • 怎么使用Maven打包构建Docker镜像并推送到仓库
    这篇文章主要介绍了怎么使用Maven打包构建Docker镜像并推送到仓库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Maven打包构建Docker镜像并推送到仓库文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-05
  • SpringBoot应用的打包和发布怎么实现
    本篇内容介绍了“SpringBoot应用的打包和发布怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 创建项目(example-f...
    99+
    2023-07-05
  • 怎么使用Docker容器搭建android编译环境
    本篇内容介绍了“怎么使用Docker容器搭建android编译环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 部署容器1.1 手动部署...
    99+
    2023-07-02
  • Java current并发包怎么使用
    这篇文章主要介绍“Java current并发包怎么使用”,在日常操作中,相信很多人在Java current并发包怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java ...
    99+
    2023-07-05
  • 怎么在python中使用反编译apk签名出包
    本篇文章为大家展示了怎么在python中使用反编译apk签名出包,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。安装工具需要python3,apktool.jar,apktool用apktool进行反...
    99+
    2023-06-14
  • Go并发编程sync.Cond怎么使用
    本篇内容主要讲解“Go并发编程sync.Cond怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go并发编程sync.Cond怎么使用”吧!简介Go 标准库提供 Cond 原语的目的是,为...
    99+
    2023-06-30
  • 怎么使用node.js开发前端打包程序
    怎么使用node.js开发前端打包程序,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们在做前端开发的时候经常会在部署上线的时候做程序的打包和...
    99+
    2022-10-19
  • Java并发编程ThreadLocalRandom类怎么使用
    本篇内容介绍了“Java并发编程ThreadLocalRandom类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么需要Thre...
    99+
    2023-07-02
  • 怎么在Java并发包中使用ThreadPoolExecutor线程池
    这篇文章给大家介绍怎么在Java并发包中使用ThreadPoolExecutor线程池,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、线程池简介线程池的使用主要是解决两个问题:①当执行大量异步任务的时候线程池能够提供...
    99+
    2023-06-15
  • Go并发编程中sync/errGroup怎么使用
    本篇内容介绍了“Go并发编程中sync/errGroup怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一.序这一篇算是并发编程的一个...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作