2017-02-05 3 views
0

Я пытаюсь настроить React с npm и, таким образом, использовать его без драгоценного камня с рельсами. Я установил Browserify и реагировал и реагировал. Кажется, я работал, я смог запустить простой пример «привет мир».Rails, Browserify и React with coffeescript

Теперь некоторые из более сложных вещей. У меня уже есть много компонентов, которые я загрузил с помощью рельсов, и мне нужно их преобразовать.

Я создал и сценарий инициализации (init.js.coffee)

React = require('react') 
ReactDOM = require('react-dom') 
PhotoRoot = require('photo_root') 

и компонент (photo_root.js.coffee)

module.exports = React.createClass 
    getInitialState: -> 
    null 
    getDefaultProps: -> 
    null 

    showCard: (photoId) -> 
    this.refs.card.setPhotoId photoId 

    render: -> 
    React.DOM.div {className: 'photo-root'}, 
     React.createElement PhotoGrid, showCard: @showCard 
     React.createElement PhotoActionCard, photoId: 615, ref: "card" 

Эти два файла находятся в одной и той же папке.

Когда я запускаю это я получаю сообщение об ошибке от BrowserifyRails :: BrowserifyError:

Error while running `/Users/mh/rails_projects/phototank/node_modules/.bin/browserifyinc -t coffeeify --extension=".js.coffee" --list --cachefile=/Users/mh/rails_projects/phototank/tmp/cache/browserify-rails/browserifyinc-cache.json -o "/Users/mh/rails_projects/phototank/tmp/cache/browserify-rails/output20170205-9947-edkf1y" -`: 

events.js:154 
     throw er; // Unhandled 'error' event 
    ^

Error: Cannot find module 'photo_root' from '/Users/mh/rails_projects/phototank/app/assets/javascripts/components' 
    at /Users/mh/rails_projects/phototank/node_modules/browser-resolve/node_modules/resolve/lib/async.js:46:17 

Он ищет «photo_root» в нужном месте, но не находя его. Имеет ли он какое-то отношение к расширениям. Я использую coffeescript!

Оценка!

ответ

0

хорошо, что было просто:

PhotoRoot = require('photo_root') 

должен быть

PhotoRoot = require('./photo_root')