angular打包优化
打包生产环境时需要的配置如下:
在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打包优化的更多相关文章
- Webpack 打包优化之体积篇
谈及如今欣欣向荣的前端圈,不仅有各类框架百花齐放,如Vue, React, Angular等等,就打包工具而言,发展也是如火如荼,百家争鸣:从早期的王者Browserify, Grunt,到后来赢得宝 ...
- 小型Web页打包优化(下)
之前我们推送了一篇小型Web项目打包优化文章,(链接),我们使用了一段时间, 在这过程中我们也一直在思考, 怎么能把结构做的更好.于是我们改造了一版, 把可以改进的地方和可能会出现的问题, 在这一版中 ...
- 记一次webpack打包优化
未进行打包优化的痛点: 随着项目的不断扩大,引入的第三方库会越来越多,我们每次build的时候会对所有的文件进行打包,耗时必定很长,不利于日常开发. 解决思路: 第三方库我们只是引入到项目里来,一般不 ...
- webpack原理探究 && 打包优化
在做vue项目和react项目时,都用到了webpack.webpack帮助我们很好地提高了工作效率,但是一直以来没有对其原理进行探究,略有遗憾. 因为使用一个工具,能够深入了解其原理才能更好地使用. ...
- Mac Angular打包报错xcode-select: error: tool 'xcodebuild' requires Xcode
Mac Angular打包报错: Error: xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer ...
- webpack 打包优化的四种方法(多进程打包,多进程压缩,资源 CDN,动态 polyfill)
如今,webpack 毫无疑问是前端构建领域里最耀眼的一颗星,无论你前端走哪条路线,都需要有很强的webpack 知识.webpack 的基本用法这里就不展开讲了.主要探讨一下如何提高 webpack ...
- Angular前端优化思路
简单总结接下我这边angular前端优化步骤都是满满的干货,各位客官有好的改进欢迎留言~ 1. 动静分离 项目里面前端比较占用带宽的一般都是加载静态资源,请求后台接口一般占用带宽都是1kb左右,但是在 ...
- webpack4.0打包优化策略整理小结
本文转载于:https://www.jb51.net/article/137449.htm 介绍了webpack4.0打包优化策略整理小结,分享给大家,具体如下: webapck4 新特性介绍-参考资 ...
- VUE_shop(第十天)项目的打包优化
项目的打包优化 1.添加页面的加载效果 1.首先安装运行依赖nprocess,在main.js文件中的axios拦截器拦截请求的时候调用Npeocees.start. 在拦截响应的时候调用nproce ...
- Webpack 打包优化之速度篇
在前文 Webpack 打包优化之体积篇中,对如何减小 Webpack 打包体积,做了些探讨:当然,那些法子对于打包速度的提升,也是大有裨益.然而,打包速度之于开发体验和及时构建,相当重要:所以有必要 ...
随机推荐
- OpenHarmony 3.1 Release版本关键特性解析——HDI硬件设备接口介绍
HDF 驱动框架是 OpenAtom OpenHarmony(简称"OpenHarmony")系统硬件生态开放的基础,为驱动开发者提供了驱动加载.驱动服务管理和驱动消息机制等驱动框 ...
- Qt加Opencv实现 梯度矫正 功能
废话: 有时候我们是从物品的斜上方拍摄的图片,看起来不直观,需要把视角拉正,这样的一个操作就叫做 梯度矫正,需要用到的技术是 Opencv 的 透视变换. 这个只是一个简单的演示demo,如果完善一下 ...
- 标签栏切换效果 JS
标签栏切换效果 JS 要求:class为tab-box的元素用于实现标签栏的外边框,,分别实现标签栏的标签部分和内容部分. html <div class="tab-box" ...
- Rust——生命周期
简而言之,即引用的有效作用域:一般情况下编译器会自动检查推导,但是当多个声明周期存在时,编译器无法推导出某个引用的生命周期,需要手动标明生命周期. 悬垂指针 悬垂指针是指一个指针指向了被释放的内存或者 ...
- Scrapy 基础入门
0x01 框架概述 Scrapy 是基于 Python 的一个非常流行的网络爬虫框架,可以用来抓取 Web 站点并从页面中提取结构化的数据 (1)核心组件 引擎:用来控制整个系统的数据处理流程 调度器 ...
- Python3中pip3命令的用法介绍及安装配置
第一节:pip3是什么?有啥用? pip3:(Python3 Install Package ),这个英文全称是我为了更好的理解这个命令这么叫的,官方没有这对个命令的全称的解释:) python 支持 ...
- FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
<FFmpeg开发实战:从零基础到短视频上线>一书的例程主要测试本地的音视频文件,当然为了安全起见,很多网络视频都采用了https地址.FFmpeg若要访问https视频,就必须集成第三 ...
- 力扣372(java)-超级次方(中等)
题目: 你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出. 示例 1: 输入:a = 2, b = [3]输出:8示例 2: 输入:a = 2, ...
- PolarDB-X源码解读系列:DML之Insert流程
简介: Insert类的SQL语句的流程可初略分为:解析.校验.优化器.执行器.物理执行(GalaxyEngine执行).本文将以一条简单的Insert语句通过调试的方式进行解读. 在阅读本文之前,强 ...
- 【SIGIR 2022】面向长代码序列的Transformer模型优化方法,提升长代码场景性能
简介: 论文主导通过引入稀疏自注意力的方式来提高Transformer模型处理长序列的效率和性能 阿里云机器学习平台PAI与华东师范大学高明教授团队合作在SIGIR2022上发表了结构感知的稀疏注意力 ...