我正在努力解决如何用我的问题提出一个明确的问题,所以我试着用一个例子来描述:
我有两个网络应用程序,每个都是使用Webpack独立构建的。共享应用程序不捆绑任何依赖项。主机应用程序将通过CDN加载共享应用程序,并且必须提供所有依赖项。
我不想链接它们(通过NPM包)并将其与Host webpack捆绑在一起。它们需要是可分离的,这样每当我更改共享主机时,我都不需要释放主机。
假设主机和共享应用程序使用React作为依赖项。我可以通过将React从Host共享到Shared:
来完成此操作共享/ webpack.config.js
...
externals: {
react: {
root: 'React'
}
}
...
DIST /共享app.js
/*!*********************!*\
!*** react ***!
\*********************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = React;
/***/ })
主机/ webpack.config.js
...
new webpack.ProvidePlugin({
'window.React': 'react'
})
...
我不喜欢这种方法,因为它使用的是全局变量。我想知道是否有一种方法可以使用 webpack_require 或jsonpFunction,以便共享应用程序需要已经捆绑在主机上的依赖项?