Rails(4.2.7)プロジェクトでreact-rails gemを使用しています。jsxが正しく表示されないようです。
gem 'react-rails'
私はES6の構文を使用して.jsxのファイルにコンポーネントを定義した:
これは正常に動作しますclass Foo extends React.Component {
render() {
return (<h1>hello</h1>)
}
}
が、私はこれは私が私のデフォルトGemfileに加えた唯一の変更です
import ReactTransitionGroup from 'react-addons-transition-group'
class Foo extends React.Component {
render() {
return (<h1>hello</h1>)
}
}
foo.es6.self-69f3a42….js?body=1:11 Uncaught ReferenceError: require is not defined
私がJSX correctl transpilingていないよ場合ように私には思える:JSモジュールをインポートしようと、私はエラーを取得します最初のケースではエラーが発生しますが、そうではありません。私はimport
を使用しようとするまで、問題なく終日jsxを使用してきました。
:
gem 'sprockets-es6'
gem 'babel-transpiler'
私は設定/環境/ development.rbにこれを追加しようとしました:
config.react.jsx_transformer_class = React::JSX::BabelTransformer
そして、私が作成しようとしましたレールを使用するコンポーネントは-es6フラグを使用してコンポーネントを生成します。
rails g react:component Foo --es6
何が欠けていますか?
実際にあなたのコードはバベルによって適切に蒸散されました。この問題は、インポートするときに発生します。あなたは、https://github.com/rstacruz/npm-pipeline-railsのようなものを使って、npmモジュールをアセットパイプラインに入れてから最終jsにバンドルする必要があります。 – Panther