首页 > 解决方案 > 加载动态组件的问题:关键依赖:依赖的请求是一个表达式

问题描述

背景:我们正在用 Svelte 重写一个(非常)大的反应 UI。在应用程序的一个部分中有许多插件。每个插件都是一个组件。每个插件(组件)都注册在一个数组中。该数组中的每个组件都是动态导入并动态显示的。

店铺:

  1. 我们创建一个数组:mycomponentsArray [ key, component_friendly_name, component_file_location, component-object (initially null).

  2. 接下来我们循环遍历数组,并将数组元素文件(component_file_location)中的组件加载到数组元素对象(component_object)中。

  3. 在父组件中,我们导入商店。

  4. 然后我们使用[#each]循环通过 <svelte:component> 传递参数来加载组件。

据我所知,这是创建应用程序插件的正确模型。

  1. 但是这种方法会产生 webpack 严重错误:"Critical dependency: the request of a dependency is an expression"

我已经对解决方案进行了彻底的搜索,虽然我至少了解了 webpack 面临的问题,但我有四个问题:

问题 1:是否有 webpack 设置或插件可以让我规避这个错误?

问题2:有什么原因我不应该规避错误(除了它会导致webpack创建一个更大的文件)

问题 3:我可以在 js 或 svelte 代码中添加一些明显的技巧来解决这个问题吗?

问题 4:我对苗条技术的要求是否过多,我应该将组件加载硬编码为常量并将动态组件限制为动态渲染(循环遍历数组以显示组件名称)。

谢谢

标签: webpacksvelte

解决方案


推荐阅读