在我的webpack构建中,我想从CDN加载React,但不从ReactDOM加载React,因为它需要一个非常小的文件的额外往返。

我的webpack配置包含以下声明“外部文件”的代码块,以便它不会生成这些文件(我改为包含CDN)。

webpack.config.js

...

externals: {
    react: 'React'
},

...

问题在于仅将React包含在外部中仍会构建React,因为ReactDOM依赖于它。

node_modules / react-dom / index.js
module.exports = require('react/lib/ReactDOM');

向外部添加'react-dom': 'ReactDOM'可以有效地将它们都从 bundle 中删除,但是我不想包含ReactDOM CDN ...

如何配置webpack从CDN加载React,但在主包中包含ReactDOM?

注意:我正在使用webpack 2.1.0-beta17和React 15.1.0。

更新
我尝试将react/lib/ReactDOM添加到外部。
...

externals: {
    react: 'React',
    'react/lib/ReactDOM': 'commonjs react-dom'
},

...

但是我收到以下错误。

最佳答案

[没有答案,太大而无法评论]

请参阅问题https://github.com/facebook/react/issues/5413https://github.com/facebook/react/issues/6128,它们争辩说拥有React + ReactDom的CDN bundle 包,如果我理解正确的话,它将使您的船漂浮。 Dan Abramov感到了,所以我充满希望。但是请注意his comment,ReactDOM很快就会变得更大。

10-06 02:30