4

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

我的 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'到 externals 可以有效地将它们从包中删除,但我不想包含 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'
},

...

但我收到以下错误。

要求未定义

4

1 回答 1

2

[不是答案,评论太大]

请参阅问题https://github.com/facebook/react/issues/5413https://github.com/facebook/react/issues/6128,它们主张拥有 React+ReactDom 的 CDN 捆绑包,这将使您的船,如果我理解正确的话。丹·阿布拉莫夫感觉到了,所以我充满希望。但是请注意,他的评论说 ReactDOM 将很快变得更大。

于 2016-07-26T00:43:25.827 回答