在我的webpack构建中,我想从CDN加载React,但不需要ReactDOM,因为它需要一个额外的往返来获取一个非常小的文件。
我的webpack配置有以下代码块声明“externals”,以便它不会构建这些文件(我使用CDN代替)。
webpack.config.js
...
externals: {
react: 'React'
},
...
问题在于仅将React包含在externals中仍然会构建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未定义
react-dom
定义为自己的Webpack入口,并将其作为单独的块。 - AlexandruBreact-dom
作为一个单独的块并不符合我的意图,我想将它包含在我的主要捆绑包中。 - Himmelreact/lib/ReactDOM
添加到externals的内容。我会查看您发布的链接,谢谢。 - Himmel