Javascript 我怎么能';互换';在我的应用程序中为react/addon作出反应?

Javascript 我怎么能';互换';在我的应用程序中为react/addon作出反应?,javascript,node.js,reactjs,browserify,Javascript,Node.js,Reactjs,Browserify,我想用性能的东西。如果我这样做的话: var React = require('react/addons'); 在我自己的模块中,库(react引导、react路由器等)最终使用了另一个普通react副本,结果出现了问题。我正在使用browserify 是否有解决方法或其他方法可以做到这一点?需要react和react/addons将为您提供相同的对象react/addons需要与react相同的模块(lib/react),而且react/addons甚至会对该对象进行变异,以便需要react

我想用性能的东西。如果我这样做的话:

var React = require('react/addons');
在我自己的模块中,库(react引导、react路由器等)最终使用了另一个普通react副本,结果出现了问题。我正在使用browserify


是否有解决方法或其他方法可以做到这一点?

需要
react
react/addons
将为您提供相同的对象
react/addons
需要与
react
相同的模块(
lib/react
),而且
react/addons
甚至会对该对象进行变异,以便需要
react
的任何人也能获得这些插件


如果您的包中有多个版本的React,那是因为您使用的库将
React
作为依赖项,而不是对等依赖项。您应该使用
npm重复数据消除
来避免这种情况。但是
react-router
react
作为对等依赖项,因此
react-router
将获得与您的模块相同的
react
模块实例(带有附加组件)。不知道您使用的其他依赖于React的软件包。

结果发现问题出在我的gulpfile上。有关寻找browserify shim的意见,请发送至Tx,以帮助我找到解决方案:

My browserify task(from)在开发过程中使用browserify.external(..)构建单独的vendors.js(libs)和main.js(My app)捆绑包,以从main.js中排除libs。我只需要添加“react/addons”作为一个外部库和“react”

这里解释了这个问题:


您可能希望为React w/插件创建一个browserify垫片,这样每个需要React实例的文件都会得到您告诉它的版本。我检查了所有的lib,它们都将其作为对等依赖项。在审阅了这里的评论之后,我发现了这个问题。即将发布答案。