本文介绍如何使用 `await import()` 语法在单行中解构导入同一模块的多个命名导出函数,避免重复调用 `import()`,提升代码简洁性与执行效率。
在 ES 模块环境中,import() 是一个返回 Promise 的动态导入函数,适用于按需加载、条件导入或在非模块(如传统 CommonJS)上下文中使用现代模块。但需注意:import() 返回的是 Promise,因此必须配合 await(在 async 函数中)或 .then() 使用。
要一次性导入并解构多个命名导出(如 del 包中的 deleteAsync、deleteSync 等),推荐写法如下:
// ✅ 正确:一行解构,一次导入,多次复用
const { deleteAsync: del, deleteSync: delSync } = await import('del');
该写法等价于:
- 动态加载 ‘del’ 模块一次;
- 解构其命名导出(注意:del 包默认导出为 undefined,所有功能均以命名导出形式提供,如 deleteAsync、deleteSync);
- 并可同时重命名(如 deleteAsync: del),保持调用习惯一致。
⚠️ 注意事项: