Hanami + FuseBox + React.js
About
리액트이전 글를 연습하고 싶어서 계속 리액트로 한다.js를 가져옵니다.
Setup
hanami g app
새로운 응용 프로그램을 제작한다.(이름은 뭐든지 가능)shell
hanami g app react
Asseets 사용 안 함, FuseBox 설치까지 하고 표시할 페이지를 만듭니다.이번에 타입 스크립트로 쓰지 않은 설정fuse.js
은 조금 달라졌다.apps/react/fuse.js
const path = require('path');
const publicPath = path.resolve(__dirname, '..', '..', 'public');
const { FuseBox } = require('fuse-box');
const fuse = FuseBox.init({
homeDir : 'frontend',
target : 'browser@es6',
output : `${publicPath}/$name.js`,
useTypescriptCompiler: true,
plugins : [
],
shim : {
}
});
fuse.bundle('react-app').instructions('> application.js').watch('frontend/**');
fuse.run();
shellhanami g action react page#index
apps/react/config/routes.rbroot to: 'page#index'
apps/react/templates/page/index.html.haml%h1 Index
%p Hello, with index!
apps/react/templates/application.html.haml!!!
%html
%head
%title React
%body
= yield
%script{ type: 'text/javascript', src: 'react-app.js' }
apps/react/frontend/application.jsconsole.log('Hello FuseBox.');
yarn build
이후 hanami s
에 액세스localhost:2300/react
하고 콘솔에 표시되면 OK.Babel setup
apps/react
디렉토리에서 다음 작업을 수행합니다.shell
yarn add babel-core babel-preset-es2015 babel-plugin-transform-react-jsx -D
apps/react/fuse.js- const { FuseBox } = require('fuse-box');
+ const { FuseBox, BabelPlugin } = require('fuse-box');
...
+ plugins : [
+ BabelPlugin({
+ presets : ["es2015"],
+ plugins : [
+ ["transform-react-jsx"]
+ ]
+ })
+ ],
...
- fuse.bundle('react-app').instructions('> application.js').watch('frontend/**');
+ fuse.bundle('react-app').instructions('> application.jsx').watch('frontend/**');
application.js
를 application.jsx
로 개명하다.React.js setup
Babel setup과 마찬가지로
apps/react
디렉토리에서 다음 작업을 수행합니다.shell
yarn add react react-dom
apps/react/frontend/application.jsximport * as React from 'react';
import * as ReactDOM from 'react-dom';
ReactDOM.render(
<h1>Hello, React.js!</h1>,
document.getElementById('hello')
);
apps/react/templates/page/index.html.haml- %h1 Index
-
- %p Hello, with index!
+ #hello
그리고 yarn build
와 hanami s
에서 잘못된 표시가 없으면 성공할 수 있음을 확인했다.덤
코드의 참고여기..
참고 자료
Reference
이 문제에 관하여(Hanami + FuseBox + React.js), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/arsley/items/89d5878607254344d1cc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)