将同一来源的长import语句拆分为多条是否存在不良影响
同路径拆分多条import语句的可行性说明
完全可行,几乎不会带来负面影响
ES Module 规范明确允许从同一个模块路径发起多次导入,底层加载逻辑保证了同一个路径的模块全局只会被加载、执行一次,拆分前后的运行时效果没有任何区别:
- 导入的所有变量都是原模块导出的同一个引用,不会出现重复实例
- 不会触发模块代码的重复执行,也不会带来额外的运行时性能损耗
- 现有主流构建工具(webpack、Rollup、Vite、esbuild等)都会自动合并同路径的导入声明,打包后不会产生冗余代码,也不会增加最终产物体积
唯一需要注意的规范问题
部分团队的ESLint规则会开启import/no-duplicates校验,禁止同路径的重复导入,遇到这种情况有两个替代方案:
- 调整ESLint规则,针对这类拆分场景做豁免
- 改用单条import换行的写法,同样可以解决单行过长的问题:
import { A, B, C, D, E, F } from 'mypath';
如果你的团队没有禁止重复导入的编码规范,直接拆分两条import是完全没问题的,可读性反而更好。
内容的提问来源于stack exchange,提问作者jn025
相关产品推荐
相关产品推荐

