打包生产环境时需要的配置如下:

在angular.json里的“configurations”里配置:

"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": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "3mb",
"maximumError": "5mb"
}
]
},
"devops": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.devops.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "3mb",
"maximumError": "5mb"
}
]
}
}
},
其中的配置项解释(参考官方文档):

配置针对特定目标的文件替换规则
CLI 的主配置文件 angular.json 中的每个构建目标下都包含了一个 fileReplacements 区段。这能让你把任何文件替换为针对特定目标的版本。 当构建目标需要包含针对特定环境(比如生产或预生产)的代码或变量时,这非常有用。

默认情况下不会替换任何文件。 你可以为特定的构建目标添加文件替换规则。比如:

"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
...
  "optimization": true,//启用构建输出的优化。
"outputHashing": "all",//定义输出文件名缓存消除哈希模式。
"sourceMap": false,//会使打包变慢
"extractCss": true,//从全局样式中将css提取到css文件而不是js文件中。
"namedChunks": false,//将文件名用于延迟加载的块。
"aot": true,//是否采用aot预编译模式
"extractLicenses": true,//将所有许可证提取到一个单独的文件中。
"vendorChunk": false,//使用仅包含供应商库的单独捆绑包。
"buildOptimizer": true,// Enables '@angular-devkit/build-optimizer' optimizations when using the 'aot' option.

配置文件大小预算
当应用的功能不断增长时,其文件大小也会同步增长。 CLI 允许你通过配置项来限制文件大小,以确保应用的各个部分都处于你定义的大小范围内。

你可以在 CLI 配置文件 angular.json 的 budgets 区段为每个所配置的环境定义这些大小范围。

{
...
"configurations": {
"production": {
...
"budgets": []
}
}
}

你可以为整个应用指定大小范围,也可以为特定部分。 每个条目会为一种特定的类型配置大小范围。 用下列各式来指定大小的值:

123 或 123b:以字节为单位的大小

123kb:以 kb 为单位的大小

123mb:以 mb 为单位的大小

12%:相对于基准大小的百分比大小。(不能用作基准大小的值。)

如果配置了大小范围,构建系统就会在发现应用的某个部分达到或超过了你设置的大小范围时发出警告或报错。

每个范围条目是一个 JSON 对象,它具有下列属性:

属性
type 限制的类型。有效值为:bundle – 特定包的大小。 initial – 应用的初始大小。allScript – 所有脚本的总大小。all – 整个应用的总大小。anyScript – 任何一个脚本的大小。any – 任何一个文件的大小。
name 要限制的包的名字(当 type=bundle 时)。
baseline 一个表示基准大小的绝对值,用做比例值的基数。
maximumWarning 当大小超过基线的这个阈值百分比时给出警告。
maximumError 当大小超过基线的这个阈值百分比时报错。
minimumWarning 当大小小于基线的这个阈值百分比时给出警告。
minimumError 当大小小于基线的这个阈值百分比时报错。
warning 当大小达到或小于基线的这个阈值百分比时都给出警告
error 当大小达到或小于基线的这个阈值百分比时都报错

在src/environments文件夹下建不同环境的配置文件,配置项目所需要的环境变量即可,如下图:

export const environment = {
production: true,
baseUrl: 'https://witest.cndhl.com/v2'
};

在package.json文件里可以配置打包命令:

{
"name": "dhl_pc",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
"build": "ng build",
"build-devops": "ng build --configuration=devops",
"build-dhl": "ng build --configuration=production --base-href /v2/",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},

打包生产环境可以用命令: npm run build-dhl 即可。

angular打包优化的更多相关文章

  1. Webpack 打包优化之体积篇

    谈及如今欣欣向荣的前端圈,不仅有各类框架百花齐放,如Vue, React, Angular等等,就打包工具而言,发展也是如火如荼,百家争鸣:从早期的王者Browserify, Grunt,到后来赢得宝 ...

  2. 小型Web页打包优化(下)

    之前我们推送了一篇小型Web项目打包优化文章,(链接),我们使用了一段时间, 在这过程中我们也一直在思考, 怎么能把结构做的更好.于是我们改造了一版, 把可以改进的地方和可能会出现的问题, 在这一版中 ...

  3. 记一次webpack打包优化

    未进行打包优化的痛点: 随着项目的不断扩大,引入的第三方库会越来越多,我们每次build的时候会对所有的文件进行打包,耗时必定很长,不利于日常开发. 解决思路: 第三方库我们只是引入到项目里来,一般不 ...

  4. webpack原理探究 && 打包优化

    在做vue项目和react项目时,都用到了webpack.webpack帮助我们很好地提高了工作效率,但是一直以来没有对其原理进行探究,略有遗憾. 因为使用一个工具,能够深入了解其原理才能更好地使用. ...

  5. Mac Angular打包报错xcode-select: error: tool 'xcodebuild' requires Xcode

    Mac Angular打包报错: Error: xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer ...

  6. webpack 打包优化的四种方法(多进程打包,多进程压缩,资源 CDN,动态 polyfill)

    如今,webpack 毫无疑问是前端构建领域里最耀眼的一颗星,无论你前端走哪条路线,都需要有很强的webpack 知识.webpack 的基本用法这里就不展开讲了.主要探讨一下如何提高 webpack ...

  7. Angular前端优化思路

    简单总结接下我这边angular前端优化步骤都是满满的干货,各位客官有好的改进欢迎留言~ 1. 动静分离 项目里面前端比较占用带宽的一般都是加载静态资源,请求后台接口一般占用带宽都是1kb左右,但是在 ...

  8. webpack4.0打包优化策略整理小结

    本文转载于:https://www.jb51.net/article/137449.htm 介绍了webpack4.0打包优化策略整理小结,分享给大家,具体如下: webapck4 新特性介绍-参考资 ...

  9. VUE_shop(第十天)项目的打包优化

    项目的打包优化 1.添加页面的加载效果 1.首先安装运行依赖nprocess,在main.js文件中的axios拦截器拦截请求的时候调用Npeocees.start. 在拦截响应的时候调用nproce ...

  10. Webpack 打包优化之速度篇

    在前文 Webpack 打包优化之体积篇中,对如何减小 Webpack 打包体积,做了些探讨:当然,那些法子对于打包速度的提升,也是大有裨益.然而,打包速度之于开发体验和及时构建,相当重要:所以有必要 ...

随机推荐

  1. 【FAQ】HarmonyOS SDK 闭源开放能力 —Asset Store Kitx

    1.问题描述 使用关键资产API需要配置SystemCapability.Security.Asset,但不知道syscap.json文件应该配置在哪里,文档也没找到. 解决方案 新增关键资产等API ...

  2. HDC 2022精彩继续,多重亮点进来看!

    原文:https://mp.weixin.qq.com/s/YX5vD4cxM8dA4v2ukFooyA,点击链接查看更多技术内容.  

  3. 想学习eTS开发?教你开发一款IQ-EQ测试应用

    原文:https://mp.weixin.qq.com/s/eZgifjirAW58dFCa0W7kSQ,点击链接查看更多技术内容. 开发者Mack基于HarmonyOS的ArkUI框架开发的IQ- ...

  4. L1 L2正则化

    范数 0范数 \(L_0\)范数表示为向量中非0元素的个数 \[L_0-||x||_0 = x_i, (x_i \not= 0) \] 1范数 向量中元素绝对值的和,也就是\(x\)与0之间的曼哈顿距 ...

  5. c# 深克隆与浅克隆

    前言 我们都知道memberwiseclone 会将浅克隆. 什么是浅克隆?如何深克隆呢? 正文 public class good{ private good(){ oneclass=new cla ...

  6. ES6中新增的Set、Map两种数据结构

    如果要用一句话来描述,我们可以说 Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构 什么是集合?什么又是字典? 集合是由一堆无序的.相关联的,且不重复的内存结构[数学中称为元素]组成的组 ...

  7. PS(Photoshop CC2019)安装教程

    记录一下自己安装PS2019版本的安装过程~ 先获取安装资料: 百度网盘链接: 链接:https://pan.baidu.com/s/15tzmq-6JQCdVn378ZFqXJA?pwd=997y  ...

  8. 如何使用 Serverless Devs 部署静态网站到函数计算

    ​简介:手把手教你:如何使用 Serverless Devs 部署静态网站到函数计算. 前言 公司经常有一些网站需要发布上线,对比了几款不同的产品后,决定使用阿里云的函数计算(FC)来托管构建出来的静 ...

  9. 更便捷:阿里云DCDN离线日志转存全新升级

    简介: 1月6日,阿里云CDN年度产品升级发布会中,阿里云CDN产品专家邓建伟宣布DCDN离线日志转存全新升级,并对离线日志转存方案的价值.应用及使用进行了详细解读. 在日常CDN加速服务过程中会产生 ...

  10. Kubernetes 稳定性保障手册 -- 可观测性专题

    简介: 伴随大家对稳定性重视程度的不断提升.社区可观测性项目的火热,可观测性成为了一个很热门的话题,站在不同的角度会产生不同的理解. 我们从软件开发的生命周期出发,尝试形成对可观测性的一个宏观理解,并 ...