javascript - TypeScript 类和 Webpack
问题描述
假设我有一个带有 10 个方法的打字稿类,并且该文件导出了该类的一个新实例作为其默认导出。然后我有另一个文件,比如 React 功能组件,它导入这个类并在该类上调用一个方法。
这将如何优化?Webpack/Babel 可以只为使用的方法提取代码,还是包含整个类,我会有一堆未使用的代码?
避免类并导出每个函数会更好吗?
我的目标是使导出的包更小,并且让 Lighthouse 更少抱怨未使用的 JavaScript。
解决方案
大多数摇树工具(包括 Webpack)通过分析 ES6import
和export
s 的树来工作,以便摇树未使用的exports
.
举个例子:
export class {
myfunc1() { /* do stuff */ }
myfunc2() { /* do stuff */ }
}
使用 Webpack 进行 tree-shaking 时,如果myFunc2
在某处使用,myFunc1
即使不使用也不能进行 tree-shaking。
但是在这里,如果不使用任何一个函数都可能会被摇树:
export myFunc1 = () => { /* Do stuff */}
export myFunc2 = () => { /* Do stuff */}
在这种情况下,摇树(使用 Webpack)最好使用组合在一个文件中的函数,而不是一个类。
推荐阅读
- android - Volley HttpHeaderParser.parseDateAsEpoch:无法解析 dateStr:-1,回退到 0
- javascript - MomentJS 在分配给新变量时更改值
- python - python中列表的招摇验证错误
- sql - 是否有模仿 nvl() 的 Python fn 或者我可以使用 SQL 来做到这一点?
- biztalk - BizTalk-2016 Feature Pack 3 在累积更新 6 之后安装
- php - Laravel - 检查集合是否有关系
- python - virtualenv 安装包(先激活虚拟环境)与 pipenv 安装包(稍后激活虚拟环境)?
- azure - 在 azure vm 上运行 ansible 的库错误
- java - 如何在需要权限时暂停应用程序
- javascript - 如何通过获取获取查询字符串参数以在另一个文件中的另一个函数中使用?