如何防止 webpack 分析动态导入?

How can I prevent webpack from analyzing a dynamic import?

我有一个前端应用程序,可以在浏览器或电子中 运行。

当它 运行 在电子上下文中时,它可以访问 node 环境。

在前端应用中,我想引入electron节点模块,在浏览器中显然是不可用的。

所以我有这个动态导入,理论上我希望它在应用程序 运行s 在浏览器中时失败,而在 运行s 在 electron/node 中时成功] 上下文。

const electron = await import('electron');

console.log(electron);

然而,webpack 会在构建时抱怨各种错误,例如

Module not found: Error: Can't resolve 'path' in '.../app/node_modules/electron'

我使用动态导入的原因首先是为了避免构建错误,因为我认为代码只会在 运行 时间执行,但 webpack 需要分析所有导入以创建捆绑。

如何告诉 webpack 忽略这个特定的动态导入或所有动态导入?

我没有在前端导入电子,而是使用 preload 选项来加载节点内容。