设想:
我想将 React 组件作为独立的 React 应用程序嵌入到网页中。例如,假设一个日期选择器和一个颜色选择器。
我不想为每个独立的捆绑包捆绑 React 或其他常见依赖项两次(或者与我最终使用这种方法一样多次)。我知道我可以使用 webpack externals 来实现这一点。
为什么使用 webpack externals 并不理想
webpack externals 意味着通过脚本标签加载一个版本的 React 并使其作为全局对象可用。在我正在处理的网站的整个生命周期中,我会被卡住:
- 使用一个版本的 React
- 如果我想使用新版本,痛苦地更新所有组件
理想的解决方案
Webpack 将各个应用程序捆绑到它们自己的范围内,如果我打包不同的 React 版本而不将它们放在外部,它似乎可以毫无问题地工作,因为每个实例都是隔离的。
是否有某种方法可以配置 webpack 在运行时查找外部模块(例如,来自 CDN 的特定版本的 React),但最重要的是不将其附加到全局命名空间并将其加载到捆绑代码的范围内?
主要的好处是允许浏览器缓存 React,并避免每次构建新组件时添加相同的下载足迹。
感谢您的时间和考虑。