2016-10-18 13 views
0

Babelifyをjsxコードをjsにトランスクリアするように設定しました。以前はnode_modulesを作っていましたので、特定のファイルロケーションなしでパッケージ名のみをリンクできます。しかし、node_moduleコードにjsxコードを組み込むと、babelifyはhtmlタグスタイルデータを使用しようとする予期しないトークンを報告します。自分のニーズに合わせて自分のバージョンの反応ブートストラップを作っています。私は反応ブートストラップが何をしたのかを見て、彼らはjsxを使用していない、彼らはReact.createElement呼び出しを使用します。ノードモジュールでjsxを使用することは不可能ですか?それは奇妙な制限です。Babelifyはnode_modulesのjsxコードを翻訳していません

私の目標は、特定のファイルパスを指定せずにパッケージを作成するだけで、モジュールを「必要とする」ことができるようにすることです。 node_moduleファイルの外で作業すると、私のコードがコンパイルされます。

私のpackage.jsonファイル:

{ 
    "name": "react-bootstrap", 
    "version": "1.0.0", 
    "main": "index.jsx" 
} 

私だけでは、パッケージ名を指定すると、いくつかに見てpackage.jsonコマンドがある場合Babelifyにのみ、node_moduleファイル内を検索します「必要」他のフォルダも同様に、私の問題を解決するかもしれません。それがjsxではなくjsだけでもコンパイルされていない限り。

ありがとう!

答えて

0

解決策が見つかりました。バラエティ化する必要のある各モジュールでは、package.jsonでbabelifyトランスフォームを指定する必要があります。

私はコマンドを使用してコンパイルする場合:

watchify src/main.jsx -v -t [ babelify --preset [ react ] ] -o public/js/index.js 

私はbabelifyが、私はそれがどこでも働くだろうと思った私のコマンドでプリセットを反応させる設定なので。

watchify src/main.jsx -v -t -o public/js/index.js 

私が追加した場合::

"browserify": { 
    "transform": [["babelify", { "presets": ["react"] }]] 
    }, 

私のpackage.jsonに私が使用できることが分かりました。だから私はちょうど私の反応ブートストラップpackage.jsonに上記のコマンドを追加しました。

関連する問題