我试图从我的捆绑包中排除react,该捆绑包由webpack生成。原因是,我们在页面上提供了react的全局版本,所以我将使用它。
我试过使用下面的方法,就像这里建议的那样,Webpack and external libraries,但这似乎不起作用。我可以看到webpack已经导出了React,但它仍然出现在捆绑包中。
externals: {
'react': 'React'
}
我在想它可能是另一个依赖,比如react-router导入react?有没有人能做到这一点?
发布于 2016-03-05 14:51:41
我和你有同样的问题。被困了一晚,找到了答案,react-dom
需要react/lib/ReactDOM
,它仍然在捆绑中包含react
。解决方案如下所示:
externals: {
'react': 'react', // Case matters here
'react-dom' : 'reactDOM' // Case matters here
}
然后将react-dom
添加到页面的脚本标记中。
发布于 2016-12-29 19:10:04
webpack
配置:
externals: {
'react': 'React',
'react-dom': 'ReactDOM',
'react-router': 'ReactRouter'
}
将这些添加到index.html
主体的底部。
<script src="http://cdn.bootcss.com/react/15.4.1/react.js"></script>
<script src="http://cdn.bootcss.com/react/15.4.1/react-dom.js"></script>
<script src="http://cdn.bootcss.com/react-router/2.8.1/ReactRouter.js"></script>
并且,在您的entry
文件中,可能是index.js
var React = require('react');
var ReactDOM = require('react-dom');
var ReactRouter = require('react-router');
const App = () => {
return <div>
webpack externals
</div>
};
ReactDOM.render(
<App/>,
document.getElementById('container')
);
发布于 2015-12-01 21:02:11
您可以只创建多个条目来将react与您的应用程序捆绑包分开。例如,您可以使用webpack CommonsChunkPlugin执行以下操作:
module.exports = {
entry: {
"app": "your app entry file",
"react" : "react"
},
plugins: [
new webpack.optimize.CommonsChunkPlugin("react", "react.bundle.js")
]
}
https://stackoverflow.com/questions/33154285
复制相似问题