yarn add react react-dom react-prop-types react-router-dom semantic-ui-react react_ujs
yarn add babel-core babel-loader babel-preset-env babel-preset-react babel-preset-stage-1 css-loader style-loader html-webpack-plugin webpack webpack-dev-server webpack-cli -D
htt
gem 'webpacker'
gem 'react-rails'
$ bundle install
$ rails webpacker:install # OR (on rails version < 5.0) rake webpacker:install
[webpacker.yml]
check_yarn_integrity = false
변경 후
$ rails webpacker:install:react # OR (on rails version < 5.0) rake webpacker:install:react
$ rails generate react:install
해당 설정이 모두 완료되면, Rails 에서 React가 사용 가능하다!
(배포의 경우, 따로 capistrano에서 추가할 gem은 없다.)
다만, NodeJS의 버전은 v6 이상이여야하고, yarn이 설치되어 있어야 한다.
[application.html]
turbolink tag 아래에 삽입
<%= javascript_pack_tag 'application' %>
해당 코드를 추가한다.
$ rails g react:component HelloWorld greeting:string
로 React component를 만들면, app/javascript/components 내에 hello_world.js.jsx 파일이 생성 된다.
기존에 있는 프로젝트에 webpack build 시 에러가 나는 케이스는 자동으로 generate된 javascript 폴더를 확인한다.
webpacker.yml에 source_path가 app/javascript로 지정되어 있는데 rails 내부에서는 app/assets/javascripts 에 생성된다.
일단 기존에 쓰던 javascripts와 분리하여 설치할 경우,
app/javascript 폴더 내에 packs와 componenets (React용 javascript 파일이 들어갈) 위치하도록 수정한다.
app/javascript/components에 HelloWorld.js 파일을 만든 뒤,
import React from "react"
import PropTypes from "prop-types"
class HelloWorld extends React.Component {
render () {
return (
<React.Fragment>
Greeting: {this.props.greeting}
</React.Fragment>
);
}
}
HelloWorld.propTypes = {
greeting: PropTypes.string
};
export default HelloWorld
index.html.erb 에서 해당 모듈을 로딩해본다.
<%= react_component("HelloWorld", { greeting: "Hello from react-rails." }) %>
정상적으로 로딩되는 지 확인해본다.
추가적으로 크롬에서 React를 디버깅하는 툴을 다운받아 설치한다.
기본적인 React의 개발환경은 모두 갖추어졌다!
다음 번엔 이어서 Rails 모델의 index 페이지를 React로 구현해보는 포스팅을 올릴 예정입니다.
'옛글 > Frontend' 카테고리의 다른 글
MAC Node version 변경하기 (0) | 2019.04.02 |
---|---|
[React+Rails] 모델의 Index 페이지를 React로 만들어보자 (0) | 2019.03.26 |
[React+Rails] 타이핑 효과나는 텍스트 제작하기 (0) | 2019.03.26 |
[React+Rails] 주기적으로 업데이트 되는 위젯을 만들어보자 (0) | 2019.03.26 |