解决关于 npm build --prod ,出现 ERROR in budgets, maximum exceeded for initial. Budget 5 MB was exceeded by 750 kB的问题
问题:
执行命令 :npm build --pord,出现以下错误:
WARNING in Invalid background value at :. Ignoring. WARNING in budgets, maximum exceeded for initial. Budget MB was exceeded by 3.73 MB. ERROR in budgets, maximum exceeded for initial. Budget MB was exceeded by kB.
解决方案:
打开angular.json文件,找到budgets看到这段
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
}
]
看得出来得修改maximumWarning
值来防止出现此警告,和错误。
修改后:
"budgets": [
{
"type": "initial",
"maximumWarning": "6mb",
"maximumError": "6mb"
}
]
出现这个问题得原因是,编译得时候运行内存超过预算了。
什么是Angular CLI预算?预算是Angular CLI鲜为人知的功能之一。这是一个很小但很整洁的功能!
随着应用程序功能的增长,它们的大小也随之增长。预算是Angular CLI中的一项功能,可让您在配置中设置预算阈值,以确保您的应用程序的一部分保持在您设置的边界内 — 官方文档
换句话说,我们可以将Angular应用程序描述为一组称为JavaScript的已编译JavaScript文件,这些文件是由构建过程生成的。角度预算允许我们配置这些捆绑包的预期大小。更重要的是,如果捆绑包的大小过于失控,我们可以为要接收警告甚至无法构建的错误配置条件阈值!
如何定义预算? Angular预算是在angular.json文件中定义的。为每个项目定义预算很有意义,因为工作区中的每个应用程序都有不同的需求。
务实地思考,只有为生产构建定义预算才有意义。产品构建在应用了诸如摇树和代码最小化之类的所有优化之后,将创建具有“真实大小”的捆绑包。
糟糕,构建错误!超过最大捆束尺寸。这是一个很好的信号,告诉我们出了点问题…
- 我们可能已经尝试过我们的功能,但未正确清理
- 我们的工具可能会出错并执行错误的自动导入,或者我们从建议的导入列表中选择了不良项目
- 我们可能会在不适当的位置从惰性模块导入内容
- 我们的新功能非常强大,不适合现有预算
第一种方法:将文件压缩吗?
一般来说,压缩文件的大小仅为原始文件的20%,这可以大大减少应用程序的初始加载时间。要检查是否已压缩文件,只需打开开发者控制台的“网络”标签。在“响应标头”中,如果您应该看到“ Content-Encoding:gzip”,则可以使用。
如何gzip的? 如果您在大多数云平台或CDN中托管Angular应用,则不必担心此问题,因为它们可能已经为您解决了此问题。但是,如果您有自己的服务器(例如NodeJS + expressJS)为Angular应用程序提供服务,则一定要检查文件是否已压缩。以下是在NodeJS + expressJS应用中gzip静态资产的示例。您几乎无法想象,这种简单的中间件“压缩”功能会将捆绑包的大小从2.21MB减少到495.13KB。
const compression = require('compression')
const express = require('express')
const app = express()
app.use(compression())
第二种方法::分析您的Angular捆绑包
如果捆绑包的大小确实太大,则可能要分析捆绑包,因为您可能使用了不合适的大型第三方包装,或者如果您不再使用它,则忘记删除某些包装。Webpack具有惊人的功能,可让我们直观地了解Webpack捆绑包的组成。
了解更多相关:
https://blog.angularindepth.com/optimize-angular-bundle-size-in-4-steps-4a3b3737bf45?gi=d46cfade9db9
此随笔乃本人学习工作记录,如有疑问欢迎在下面评论,转载请标明出处。
如果对您有帮助请动动鼠标右下方给我来个赞,您的支持是我最大的动力。
解决关于 npm build --prod ,出现 ERROR in budgets, maximum exceeded for initial. Budget 5 MB was exceeded by 750 kB的问题的更多相关文章
- angular2 ng build --prod 报错:Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory'
调试页面 ng serve 正常 ng build 也正常 ng build --prod 异常:Module not found: Error: Can't resolve './$$_gendir ...
- ANGULAR 使用 ng build --prod 编译报内存错误的解决办法
如果你遇到如下的情况 <--- Last few GCs ---> [13724:0000020D39C660D0] 231298 ms: Mark-sweep 1356.3 (1433. ...
- npm install 报错 error Unexpected end of JSON input while parsing near '...sShrinkwrap":false,"d' 解决办法
npm install 报错 : error Unexpected end of JSON input while parsing near '...sShrinkwrap":false,& ...
- 执行ng build --prod --aot命令报错
D:\git\**\src\main\iui>ng build --prod --aotHash: 257ab60feca43633b6f7Time: 25358mschunk {0} poly ...
- cnpm install 之后 Angular2 Build --prod 报错
95% emittingUnhandled rejection Error: ENOENT: no such file or directory, open 'E:\git_0.28\adminTem ...
- ng build --aot 与 ng build --prod
angluar的编译有以下几种方式: ng build 常规的压缩操作 代码体积最大 ng build --aot angular预编译 代码体积较小 ng build --pr ...
- IOS8解决获取位置坐标信息出错(Error Domain=kCLErrorDomain Code=0)(转)
标题:IOS8解决获取位置坐标信息出错(Error Domain=kCLErrorDomain Code=0) 前几天解决了在ios8上无法使用地址位置服务的问题,最近在模拟器上调试发现获取位置坐标信 ...
- angular ng build --prod 打包报错解决方案
使用以下代码 就不报错了 ng build --prod --no-extract-license 打包命令 使用以下代码 就不报错了 ng build --prod --no-extrac ...
- npm WARN build `npm build` called with no arguments. Did you mean to `npm run-script build`?
跑npm build结果如下: npm WARN build `npm build` called with no arguments. Did you mean to `npm run-script ...
随机推荐
- SAP系统玩阴的?
SAP系统玩阴的? 近日和项目上的ABAP开发顾问一起弄一个自开发的报表.其中某个栏位的取值需要从批次主数据里抓取到供应商代码,然后根据供应商代码取到供应商名称等.为此笔者需要备功能说明书.在说明书里 ...
- Python当中的array数组对象
计算机为数组分配一段连续的内存,从而支持对数组随机访问:由于项的地址在编号上是连续的,数组某一项的地址可以通过将两个值相加得出,即将数组的基本地址和项的偏移地址相加.数组的基本地址就是数组的第一项的机 ...
- Flutter学习笔记(1)--环境安装
flutter最近显得格外的火,公司的同事也一直在谈论flutter,感觉自己不学学就要失业了...所以决定顺应潮流学习以下flutter,做一下学习笔记,希望可以给需要的同学带来一些帮助~ 正文为f ...
- 1_Swift概况
Swift 标准库 解决复杂的问题并编写高性能,可读的代码 概况 Swift标准库定义了用于编写Swift程序的基本功能,其中包括 1.如基本数据类型Int,Double以及String 2.共同的数 ...
- Docker安装并运行mysql5.6数据库
1.在/home目录下新建mysql目录 mysql目录中新建三个目录:conf目录.logs目录.data目录,建这些目录的目的是用来挂载docker中的mysql下的目录的. 结果如下: 1.1. ...
- 【mysql】pymysql.err.InterfaceError Interface Error: (0, '')
八成是丢失连接了 while 1: try: self.conn.ping(reconnect=True) self.cur.execute(sql,tuple(item.values())) sel ...
- [日常] 跨语言的POST请求问题的解决
部门对外提供了一个HTTP的POST接口,但是对方公司的程序员使用C语言进行的调用,PHP这边一直无法获取到参数.遇到这种情况是因为对方没有完全按照HTTP协议中的POST发送数据.在HTTP头部分没 ...
- 基于tiny4412的Linux内核移植 --- aliases节点解析【转】
转自:https://www.cnblogs.com/pengdonglin137/p/5252348.html 阅读目录(Content) 作者信息 平台简介 正文 回到顶部(go to top) ...
- postman---postman简单介绍
有小伙伴们想要了解postman,今天它来了,不要问它到底有多强大,自古免费好用即是王道,它不仅仅是开发接口强大的调试工具,还是测试接口的居家必备,它不仅仅可以把需要调用的接口保存下来方便调用,还可以 ...
- 扎西平措 201571030332 《面向对象程序设计(java)课程学习进度条》
<2019面向对象程序设计(java)课程学习进度条> 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序 阅读或编译让我 第一周 20/ ...