首页 > 解决方案 > 从外部源加载动态模块

问题描述

我需要从外部源加载一个反应组件。

   myUrl = "http.//myOtherwebsite/.../myComponent.js";
   myComponent= React.lazy(() => import(/* webpackIgnore: true */ myUrl));

HTTP 响应状态为 200 ok,文件正确(我解决了任何 CORS 问题)。

我有错误:

        TypeError: "undefined has no properties" 

并且该组件未构建。我该如何解决这个问题?

标签: javascriptreactjswebpackdynamicimport

解决方案


我没有太多运气让 webpackIgnore 实际上忽略导入调用。因此,import() 的返回值是未定义的,而不是实际的模块。当 webpack 执行此操作时,甚至根本不会获取 yourUrl 处的文件。您会得到“未定义没有属性”,因为返回的未定义将进入 React 机器而不是实际模块。

我对这个问题的解决方案可能无济于事,但这里是:在我的 Typescript 配置文件tsconfig.json中,我将选项removeComments设置为 True,这是正常的做法。但是它在 webpack 看到它之前删除了 webpackIgnore 注释,因此 webpack 没有忽略 import() 并且它替换它的内容返回了困扰你的未定义。


推荐阅读