2015-09-18 15 views
5

Babelを使用してブラウザ内のJSXトランスフォーメーションを呼び出そうとしています。私が使用したブラウザでAMD JSモジュールをロードしていますRequireJS + Babel + JSX

次:最終的に呼び出しますJSXをレンダリングする機能を有し、この「UI」モジュールをインポートし

require(["nbextensions/ht"] function(ext){}); 

を。 しかし、これはBabelのブラウザ内のJSXトランスを起動しているようには見えません。 BabelのJSX TransformerをRequireJSコンテキスト内から呼び出すことは可能ですか?

var BOWER = '/nbextensions/ht/bower_components' 
var COMPONENTS = '/nbextensions/ht/components' 
var NODE_MODULES = '/nbextensions/ht/node_modules' 

requirejs.config({ 
    paths: { 
    es6: NODE_MODULES + "/requirejs-babel/es6", 
    babel: NODE_MODULES + "/requirejs-babel/babel-5.8.22.min" 
    } 
}) 

define([ 
    BOWER + '/react/react.min.js', 
    "es6!" + COMPONENTS + "/App.jsx" 
],function(React, App){ 
    console.log("Loaded React v" + React.version) 

    var ui = {} 
    ui.render = function() { 
    React.render(<App/>, document.getElementById("ht_main")) 
    } 

    return ui 
}) 

答えて

1

ああ、分かりました。ここで使用されているメソッドhttps://github.com/podio/requirejs-react-jsxは機能しますが、RequireJS JSX変換はインポートされたモジュールでのみ機能します(main.jsではJSXを混在させることはできません)。

したがって、コンポーネントモジュールは、render()メソッドをReact.renderに公開する関数プロトタイプに単純にラップする必要があります。

githubページの例を参照してください。

+0

これはもう有効ではありません。 React 0.14以降、JSXTransformerは推奨されていません –

関連する問題