如何在webpack构建的未链接模块之间共享捆绑的依赖关系

时间:2018-06-07 13:21:51

标签: webpack

我正在努力解决如何用我的问题提出一个明确的问题,所以我试着用一个例子来描述:

我有两个网络应用程序,每个都是使用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,以便共享应用程序需要已经捆绑在主机上的依赖项?

0 个答案:

没有答案