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 文件(包含

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。