如果你打开一个文件,第一眼看到的不是业务逻辑,而是密密麻麻的 import 语句,那种感觉就像走进一间堆满杂物的房间——烦躁,还容易找不到东西。
import 语句泛滥不是小事,它意味着模块边界模糊、依赖关系混乱,甚至拖累编译速度。这篇文章就聊聊我在实际项目中试过的一些方法,从模块重导出到 webpack 技巧,再到 TypeScript 的类型处理,看能不能帮你把屏幕清出来。
一、用模块重导出让 import 收敛
模块重导出是个老办法,但确实好用。很多组件库都这么干:把所有组件从 components/index.ts 统一暴露,外部只用一次 import 就搞定一堆模块。
// 不用重导
import Modal from '@arco-design/web-react/es/Modal'
import Checkbox from '@arco-design/web-react/es/Checkbox'
import Message from '@arco-design/web-react/es/Message'
// 用重导
import { Modal, Checkbox, Message } from '@arco-design/web-react'
在业务项目里,我们可以按文件夹来组织重导:components、utils、hooks 各自建一个 index.ts,把内部导出收拢后一起暴露。这样导入路径短了,结构也更清晰。
重导出的几种常见写法:
// 直接重导出
export { foo, bar } from './moduleA';
// 重命名并重导出(包括默认导出)
export { foo as newFoo, bar as newBar } from './moduleA';
export { default as ModuleDDefault } from './moduleD';
// 重导出整个模块(不含默认导出)
export * ;
{ foo, bar } ;
{ foo, bar };


