Node.js 与#x201C;要求(x)和#x201D;和“;等待导入x”;

Node.js 与#x201C;要求(x)和#x201D;和“;等待导入x”;,node.js,import,async-await,require,Node.js,Import,Async Await,Require,这个问题看起来很相似,但实际上不同 我注意到最近在Next.js项目中使用了wait import,例如: 乍一看,我相信使用await import(“@apollo/react ssr”)可以在源代码中(有条件地)使用import,而不是在顶层导入@apollo/react ssr模块。目标是减少为浏览器生成的捆绑包(浏览器将不包含@apollo/react-ssr包) 到目前为止,我一直使用const reactSSR=require('@apollo/react ssr')有条件地导入

这个问题看起来很相似,但实际上不同

我注意到最近在Next.js项目中使用了
wait import
,例如:

乍一看,我相信使用
await import(“@apollo/react ssr”)
可以在源代码中(有条件地)使用
import
,而不是在顶层导入
@apollo/react ssr
模块。目标是减少为浏览器生成的捆绑包(浏览器将不包含
@apollo/react-ssr
包)

到目前为止,我一直使用const reactSSR=require('@apollo/react ssr')有条件地导入包。我想知道这两种方法有什么不同

也许使用
等待导入('@apollo/react ssr')
更好,因为它允许树摇动?与
require
相比,使用它有什么“缺点”吗

if (ssr && AppTree) {
    // Import `@apollo/react-ssr` dynamically.
    // We don't want to have this in our client bundle.
    const { getDataFromTree } = await import('@apollo/react-ssr')
}