317 - 《按需打包 class 方法》
发布于 2023年6月29日
简单记录下昨天群里的问题。
问题是这样。
请教下用 rollup、webpack 能根据环境变量的不同,删减不同的类方法吗?能打包出包含 a,b 的类和包含 a,c 的类。不需要的方法能被 treeshaking 掉。比如。
class Api {
a() {}
b() {}
c() {}
}
Tree Shaking 是提问者给出的可能的解,如果大家关注 Tree Shaking 而忽略问题本身,就陷入了 XY Problem。Tree Shaking 是问题的解,不是问题;同时 Tree Shaking 并不是这个问题的正解。
怎么解?基于 Webpack 说下我的思路。拍脑袋能想到有两种解法。
1、简单解 Define
2、复杂解 AST
方法一