使用Webpack包括来自CDN的React,但不包括ReactDOM

问题描述:

在我的webpack版本中,我想从CDN加载React,但而不是 ReactDOM,因为它需要额外往返一个非常小的文件。使用Webpack包括来自CDN的React,但不包括ReactDOM

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

webpack.config.js

... 

externals: { 
    react: 'React' 
}, 

... 

的问题是,只有包括作出反应的外部还建立反应,因为ReactDOM依赖于它。

node_modules /反应-DOM/index.js

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

添加'react-dom': 'ReactDOM'到的外部有效地从包中删除他们两个,但我不希望有包括ReactDOM CDN ...

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


注:我使用的WebPack 2.1.0-beta17和应对15.1.0。


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

... 

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

... 

但我得到以下错误。

要求没有定义

+0

但是它表示它[打算包含在React中](https://github.com/facebook/react/tree/master/packages/react-dom),所以当你把React放在CDN上时,你也有ReactDOM包括在内。 – AlexandruB

+0

对,我只想在我的包中包含ReactDOM,而不是包含它的CDN。 – Himmel

+0

我不明白的用例,但我想定义'react-dom',因为它自己的Webpack条目,并使其[单独块](https://github.com/webpack/webpack/tree/master/examples/多公地块)? – AlexandruB

[不是答案,太大评论]

见问题https://github.com/facebook/react/issues/5413https://github.com/facebook/react/issues/6128,其主张具有一个CDN束阵营+ ReactDom,这将漂浮你的船,如果我理解正确。丹·阿布拉莫夫感觉到了,所以我很有希望。但是请注意,his comment ReactDOM很快就会变得更大。

+0

非常有趣的东西。令人惊讶的是发现这样的捆绑包还不存在。 – Himmel