370 - 《Mako 开发日志(6) - 未使用的 import 语句》
发布于 2023年11月9日
上午刚修完的一个问题,记录下。
问题
先看一个场景。
// entry
import * as foo from 'foo'
console.log('entry');
// foo/index.js
export const foo = 'foo';
console.log('foo');
此时打包结果应该是啥?
答案
这样?
console.log('entry');
你没考虑到的点是,foo/index.js 可能有 side effects。
还是这样?
console.log('foo');
console.log('entry');
两个答案的差异是:foo 模块有没有被保留。
事实上,会稍微更复杂些。在没有补充更详情的信息前,这题没有标准答案。那有哪些决定因素呢?1)文件是 ts 还是 js,2)被 import 的 foo 有没有 side effects。
答案是,
- 如果是 ts 文件(包含