【发布时间】:2016-07-25 20:48:42
【问题描述】:
在我的 webpack 构建中,我想从 CDN 加载 React,但不 ReactDOM,因为对于一个非常小的文件,它需要额外的往返。
我的 webpack 配置有以下代码块声明“外部”,因此它不会构建这些文件(我改为包含 CDN)。
webpack.config.js
...
externals: {
react: 'React'
},
...
问题是 only 在外部包含 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。
更新
我尝试将react/lib/ReactDOM 添加到外部。
...
externals: {
react: 'React',
'react/lib/ReactDOM': 'commonjs react-dom'
},
...
但我收到以下错误。
require 未定义
【问题讨论】:
-
但是它说是intended to be included with React,所以当你把 React 放在 CDN 上时,你也包含了 ReactDOM。
-
对,我只想在我的包中包含 ReactDOM,而不是为它包含 CDN。
-
我不理解用例,但我想将
react-dom定义为它自己的 Webpack 条目并使其成为 separate chunk? -
将
react-dom包含为一个单独的块并不能满足我将其包含在我的主包中的意图。 -
我最好的猜测:尝试为 react/lib/ReactDOM 添加一个 webpack 外部。否则,请查看*.com/questions/34602831/… 以获取想法。还有一个想法:试试 dedupe 插件。
标签: javascript reactjs webpack react-dom