Invalid loadShareSync function call from bundler runtime
原因
设置共享依赖后,对应的依赖库会被判定为异步模块,如果没有开启异步入口,并且没有设置 eager: true
,那么会发生此错误。
解决方法
两者选一即可:
-
开启异步入口
如果使用了 @module-federation/modern-js
插件,那么默认会根据构建器类型开启对应的异步入口。
但如果是构建模式 ,那么仍需要手动设置异步入口。
接下来将示例如何开启异步入口。
创建 bootstrap.js 文件,并复制原入口文件的内容于此:
bootstrap.js
+ import React from 'react';
+ import ReactDOM from 'react-dom';
+ import App from './App';
+ ReactDOM.render(<App />, document.getElementById('root'));
修改原入口文件内容,改为引用 bootstrap.js:
index.js
+ import('./bootstrap');
- import React from 'react';
- import ReactDOM from 'react-dom';
- import App from './App';
- ReactDOM.render(<App />, document.getElementById('root'));
- shared 设置
eager: true