2014-09-11 42 views
0

我正在使用Browserify爲客戶端捆綁serverside react.js代碼。Browserify包括僅使用某些部分時的整個模塊(react-addons)

但是,我有一種不好的感覺,使用npm包內的模塊會導致整個包被Browserify捆綁在一起。

問:是否require('react-addons').LinkedStateMixin導致整個react-addons包被捆綁進我的Browserified JS?

IE:Browserify治療require('react-addons').LinkedStateMixin是否與require('react-addons')相同?

如果是這樣,是否有解決方法?外部工具,Browserify選項等。

回答

2

Browserify無法從模塊中提取部分功能。

你可以做的,雖然是什麼,是react-addons這樣內要求所需模塊:

require('react-addons/lib/LinkedStateMixin')

這將只包括一個模塊(和它的依賴)在你的包。但是,您現在依賴於模塊的內部結構。如果LinkedStateMixin被重命名,您將不得不更改您的require語句。

+0

啊謝謝你的提示。下面我找到了一個解決方案。 – JackMahoney 2014-09-11 20:18:28

1

@mantoni是有幫助的,但因爲這是一個react-addons具體的問題,我會張貼我的答案。

請勿並排使用react-addonsreact。相反,當要求React使用require('react/addons')時。這會在/addons/處調用一個腳本,它將返回完整的React 插件。

所以我的例子:

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

//this works as normal! 
React.createClass({}); 

謝謝你們!

1

如果您要使用例如ReactJS 0.13.3CSSTransitionGroup你要做的下一:

var React = require('react/addons'), 
    CSSTransitionGroup = React.addons.CSSTransitionGroup; 

和所有的必須安裝 - npm install react

相關問題