LoginSignup
5
6

More than 5 years have passed since last update.

rails+react構成でbrowserify-rails使おうとしたらハマった

Last updated at Posted at 2015-12-01

趣旨

フロントreactのサーバrailsのアプリ作成中に軽い気持ちでbrowserifyを導入しようとしたらハマった話。
※根本的に間違ってる可能性は大いにあるのだが、同じ構成でやる時の注意点として残します

使ったライブラリとか

gem

  • rails(4.2.4)
  • react-rails(1.4.2)
  • browserify-rails(0.9.3)

jsライブラリ

  • browserify(10.2.6)
  • browserify-incremental(3.0.1)
  • reactify(1.1.1)
  • coffeeify(1.2.0)

やろうとしたこと

reactとcoffeescriptでアプリを実装しようとした。
(ファイルは.js.jsx.coffeeな拡張子)

最初はsprocketsにコンパイル任せてたらうまくいってた。

しかし、、、

ファイル分割したりして、
「requireつかいて〜な〜」って思い立ってbrowserifyを入れたのが運の尽き。

components/commentBox.js.jsx.coffee
Commet = require('./comment').Comment

class CommentBox extends React.component
    render: ->
        `<Comment />`
components/comment.js.jsx.coffee
class Comment extends React.component
    render: ->
        `<div>コメントだよ</div>`

module.extends = Comment

みたいなことをやろうとして、下記エラーが立ちはだかる。。。

xxx/components/comment.js.jsx.coffee:13

    return <div>
           ^
ParseError: Unexpected token

なエラーが治らず、盛大にはまりました。ビクトモシネー

解決策

initializer/asset.rb
Rails.application.config.browserify_rails.commandline_options = [
  "-t [coffeeify --extension .coffee]",
  "-t [reactify --extension .jsx.coffee]",
  "--extension .js.jsx.coffee"
]

な感じにしたら行けました。少なくとも上のような簡単なコードは通った。

参考にしたもの

Can't render browserified JS on server side
Railsでbrowserifyとreact

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6