【问题标题】:Dynamic Module loading from external source从外部源加载动态模块
【发布时间】:2020-06-22 05:36:58
【问题描述】:
我需要从外部源加载一个反应组件。
myUrl = "http.//myOtherwebsite/.../myComponent.js";
myComponent= React.lazy(() => import(/* webpackIgnore: true */ myUrl));
HTTP 响应状态为 200 ok,文件正确(我解决了任何 CORS 问题)。
我有错误:
TypeError: "undefined has no properties"
并且该组件未构建。
我该如何解决这个问题?
【问题讨论】:
标签:
javascript
reactjs
webpack
dynamic
import
【解决方案1】:
让 webpackIgnore 真正忽略导入调用,我不太幸运。因此,import() 的返回值是未定义的,而不是实际的模块。当 webpack 执行此操作时,甚至根本不会获取 yourUrl 处的文件。你会得到'undefined has no properties',因为返回的 undefined 会进入 React 机器而不是实际的模块。
我对这个问题的解决方案可能无济于事,但这里是:在我的 Typescript 配置文件 tsconfig.json 中,我将选项 removeComments 设置为 True,这是正常的做法。但是它在 webpack 看到它之前就删除了 webpackIgnore 注释,因此 webpack 并没有忽略 import() 并且它替换它的内容返回了困扰你的未定义。