在我的应用程序中,如何“交换”反应/插件?

我想使用Perf的东西。 看来,如果我这样做:

var React = require('react/addons'); 

在我自己的模块中,然后库(react-bootstrap,react-router等)最终使用另一个简单的反应副本,事情破裂。 我正在使用browserify。

有没有修复或其他方式来做到这一点?

要求reactreact/addons会给你相同的对象。 react/addons需要相同的模块, reactlib/React ), react/addons甚至突变该对象,以便任何需要react也将获得插件。

如果你的包中包含多个版本的React,那是因为你使用的库作为一个依赖而不是依赖于对等的依赖。 你应该使用npm dedupe来避免这种情况。 但是react-router有一个对等的依赖关系,所以react-router将得到与你的模块相同的react模块实例(使用附件)。 不知道你使用的其他软件包依赖于React。

事实certificate,问题是我的大文件。 Tx的评论关于寻找一个browserify垫片,导致我的解决scheme:

我的browserify任务(来自React JS工作stream程,第2部分 )在开发过程中使用browserify.external(..)在main.js中排除这些库来构build独立的vendors.js(libs)和main.js(我的应用程序)捆绑包。 我只需要添加“react / addons”作为外部库以及“react”。

这个问题在这里解释:

https://github.com/substack/node-browserify/issues/1161