我正在使用Browserify为客户端捆绑serverside react.js代码。
但是,我感觉很糟糕,在npm包中使用模块会导致整个包被Browserify捆绑。
问: require('react-addons').LinkedStateMixin
是否会导致整个react-addons
包被捆绑到我的Browserified JS中?
IE:Browserify会将require('react-addons').LinkedStateMixin
视为require('react-addons')
吗?
如果是这样,有什么方法吗?外部工具,Browserify选项等。
答案 0 :(得分:2)
Browserify无法从模块中提取部分功能。
你可以做的是,需要react-addons
内的所需模块,如下所示:
require('react-addons/lib/LinkedStateMixin')
这只会包含一个模块(及其依赖项)。但是,您现在依赖于模块的内部结构。如果重命名LinkedStateMixin
,则必须更改您的require语句。
答案 1 :(得分:1)
@mantoni很有帮助,但由于这是一个react-addons
具体问题,我将发布我的答案。
请勿并排使用react-addons
和react
。相反,当要求React使用require('react/addons')
时。这会调用/addons/
处的脚本,该脚本会返回带有插件的完整React 。
所以我的例子:
var React = require('react/addons');
var LinkedStateMixin = React.LinkedStateMixin;
//this works as normal!
React.createClass({});
谢谢你们!
答案 2 :(得分:1)
ReactJS 0.13.3
如果你想使用例如CSSTransitionGroup
var React = require('react/addons'),
CSSTransitionGroup = React.addons.CSSTransitionGroup;
你必须做下一个:
npm install react
所有必须安装的内容 - WHERE concat(X, Y) like '%Some Value%'
。