angular - 角度性能,具有特定路径的导入
问题描述
我正在尝试减小我的捆绑包大小。我跑了webpack-bundle-analyzer。
例如,在包裹上,lodash
我得到以下统计信息:
- 统计大小 527.2kb
- 解析大小 69.14kb
- 压缩后的 23.67kb
我通过以下方式导入 lodash 方法:
import {uniq, get, flatten} from 'lodash';
问题1)
我不清楚我是否从直接导入方法中获得任何好处,例如:
import {uniq} from 'lodash/uniq';
一些基准测试文章写道,这减少了捆绑包的大小。但是,例如使用 lodash,这似乎也可以通过 webpack 插件来实现。正如在上面的示例中可以看到的那样,解析后的大小是统计数据大小的十分之一。那么这已经由角度完成了吗?
问题2)
如果 1) 减小包大小,有没有比将导入拆分为多行更好的方法——恕我直言,代码非常混乱。
import {uniq, get, flatten} from 'lodash';
=>
import {uniq, get, flatten} from 'lodash/uniq';
import {uniq, get, flatten} from 'lodash/get';
import {uniq, get, flatten} from 'lodash/flatten';
问题 3)
如果我遵循直接导入的建议,我只会收到错误
error TS2305: Module '"./frontend/node_modules/@types/lodash/difference"' has no exported member 'difference'.
我是否需要在我的 lodash 中添加地图(可能还有我正在优化的任何其他模块)angular.json
?
解决方案
推荐阅读
- python - Google Cloud 中的 UMAP 模型加载失败,字节码版本不兼容
- c - 为什么断言不做任何事情?我需要做什么才能让它工作?
- rabbitmq - 响应 RabbitMQ API GET /api/queues 的密钥重复的可能原因
- xml - 肥皂 xml 发送但服务器端差异(“<”,“<”)(“>”,“>”)
- python - 对于这个 sklearn 转换器,我应该遵循正确的列规范吗?
- loops - KDB:使用具有两个变量的递归函数发出问题
- .net - Log4Net:EventLogAppender 创建协议,但不记录
- iis - 网站未加载样式和文件,因为正在加载不同的路径
- google-classroom - 检索到的最大教室 ID 数
- javascript - await sleep 仅在异步函数中有效