2015-09-11 28 views
1

我試圖導出一個JavaScript模塊(在這種情況下,與一個React實現)到一個文件並通過腳本標記訪問它。Browserify:通過腳本標記導出模塊和接口

我到目前爲止所做的一切。我的腳本:

var Link = React.createClass({ 

    propTypes: { 
     data: React.PropTypes.object, 
     classname: React.PropTypes.string, 
     target: React.PropTypes.string 
    }, 

    render: function() { 
     return <a href={this.props.data.url} title={ this.props.data.name } className={ this.props.classname }>{ this.props.data.name }</a>; 
    } 

}); 

module.exports = Link; 

使用咕嚕,我有個任務transpile這ES5(使用咕嚕-反應)和browserify它:

browserify: { 
    options: { 
    transform: [ require('grunt-react').browserify ] 
    }, 
    client: { 
    src: ['src/components/Link.js'], 
    dest: 'dist/components/Link.js' 
    } 
} 

生成Link.js文件,但鏈接變量不在窗口範圍內。 我不知道我是否錯過了一些東西。任何人有任何想法?

+0

Arn't你缺少你return語句一些報價@ Link.render –

+0

@ elad.chen沒有,這是語法對於React模板。咕嚕反應任務將其編譯爲純「javascript」。 –

回答

2

當您將Link模塊導出爲module.exports = Link時,它僅適用於require它的任何組件。要在窗口範圍內可用的模塊,你必須把它放在窗口範圍這樣

window.Link = React.createClass({ 
.... 
})