使用Webpack从CDN包含React,但不包括ReactDOM

在我的webpack构建中,我想从CDN加载React,但不是从ReactDOM加载,因为它需要额外的往返来获取非常小的文件 .

我的webpack配置有以下代码块声明"externals",因此它不会构建这些文件(我改为包含CDN) .

webpack.config.js

...

externals: {
    react: 'React'
},

...

问题是只在Retern中包含React仍会构建React,因为ReactDOM依赖于它 .

node_modules/react-dom/index.js

module.exports = require('react/lib/ReactDOM');

'react-dom': 'ReactDOM' 添加到外部有效地将它们从捆绑中删除,但我不想要包含ReactDOM CDN ...

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


注意:我使用的是webpack 2.1.0-beta17和React 15.1.0 .


Update 我尝试将 react/lib/ReactDOM 添加到外部 .

...

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

...

但是我收到以下错误 .

require未定义

回答(1)

2 years ago

[不是答案,评论太大了]

如果我理解正确的话,请参阅问题https://github.com/facebook/react/issues/5413https://github.com/facebook/react/issues/6128,这些问题争论有一个反应ReactDom的CDN捆绑,它可以漂浮你的船 . 丹阿布拉莫夫感受到了,所以我很有希望 . 但请注意,ReactDOM很快就会变得更大 .