繁体   English   中英

值得删除大代码库中未使用的导入?

[英]Worth removing unused imports in big codebase?

运行一个脚本来检查未使用的imports例如import XYZ from 'dir/XYZ.jsx'其中从未使用过XYZ ,我遇到了大约300个存在此类问题的文件。 这些文件大多数是缺少类似的事情,如Proptypes (用于阵营import PropTypes from 'prop-types' )。

我在导入后听说webpack / babel缓存文件。 如果这是真的,那么删除这些多次出现的未使用的进口是否值得,或者我应该将它们单独留下?

请注意,出于性能原因以及代码清洁度,我正在执行此项目。

您已经回答了自己的问题:

请注意,出于性能原因以及代码清洁度,我正在执行此项目。

但是,让我们通过一个示例场景和一些用例来打破答案。

场景

让我们说我们有一个预测应用程序。 当用户转到每日预测路线时,他想要仅获取当天的信息。

使用案例

  1. 随着应用程序的用户, 它是性能开销如果在日常的路线,由于某种原因,我们加载一个或多个库,从未使用过? 考虑到这些库:
    1. 有一些执行时间。 想象一下,在导入的模块中,我们实例化一个新对象或执行一些繁重的处理。
    2. 为用户增加了网络开销。
  2. 作为一个开发人员的观点,如果我看到一个包含一堆导入库的文件,那么第一眼看上去是否足够清楚
    1. 如果我在DailyComponent导入weeklyForecast实用程序呢? 我的观点是它具有误导性和混乱性,除非您查看整个DailyComponent 也许有人会说我们有Linters。 但是,如果你不遵守其规则和惯例,你为什么要使用Linter?

从技术上讲 ,如果您导入的东西是从未使用过的,但却会提供给用户,那么这就是性能损失(用例1)。 我建议你检查webpack优化实践 (最小化,重复数据删除,块)。

你也知道Webpack Code Splitting吗?

代码拆分是webpack最引人注目的功能之一。 此功能允许您将代码拆分为各种捆绑包,然后可以按需或并行加载。 它可用于实现更小的捆绑并控制资源负载优先级,如果使用得当,可能会对加载时间产生重大影响。

现在想象一下,如果您在应用中进行代码拆分,但仍有许多未使用的导入。 这将增加初始应用程序加载时间,并将违反代码拆分的想法。

结论

对于新项目,显然包含未使用的进口没有任何好处。

根据您的情况,您可以测量具有和不具有未使用的导入的特定路线的加载时间。 大多数IDE都提供此功能来删除未使用的导入,因此您可以计算影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM