본문 바로가기
my_lesson/_ReactJS

ReactJS - Sequencial of ReactJS environment setting 환경설정 순서

by boolean 2018. 4. 1.
728x90

ReactJS - Sequencial of ReactJS environment setting  환경설정 순서

NodeJS and NPM


NodeJS는 ReactJS 개발을 위해 필요한 platform이다.

windows: NodeJS downloads [바로가기]

ubuntu :  NodeJS downloads [바로가기]

macOS :  NodeJS downloads [바로가기]

NPMYarn 은 NodeJS packages를 위한 페키지 관리자 이다.

NPM프로그램은 NodeJS설치시에 같이 설치 되어지며,  

NPM읗 통해서 Yarn을 설치 할 수 있다

~>npm install -g yarn



수동 환경설정 순서 

1.  Create the Root Folder

명령어 프롬프트 창에서 루트 폴더를 만든 다음 그 폴더로 이동해서 npm init명령을 이용해서 package.json이라는 빈파일을 생성한다.

~$mkdir reactApp

~/reactApp$cd reactApp

~/reactApp$npm init

2. Install Global Packages

~/reactApp$npm install -g babel

~/reactApp$npm install -g babel-cli

3. Add Dependencies and Plugins

webpack bundler를 사용할 것이다. webpack and webpack-dev-server를 설치하자.

~/reactApp$npm install webpack --save

~/reactApp$npm install webpack-cli --save-dev

~/reactApp$npm install webpack-dev-server --save

React를 사용하기 위해 설치를 하는데, --save 옵션으로 설치하면 해당 packages의 package.json파일에 추가된다.

~/reactApp$npm install react --save

~/reactApp$npm install react-dom --save

JSX Transpiler인 babel plugins를 설치하자.

~/reactApp$npm install babel-core

~/reactApp$npm install babel-loader

~/reactApp$npm install babel-preset-react

~/reactApp$npm install babel-preset-es2015

4. Create the Files

필수 파일들을 만들어 보자

~/reactApp$touch index.html

~/reactApp$touch App.jsx

~/reactApp$touch main.js

~/reactApp$touch webpack.config.js

이런 방법으로도 필수 파일을 만들 수 있다.

~/reactApp$type >index.html

~/reactApp$type >App.jsx

~/reactApp$type >main.js

~/reactApp$type >webpack.config.js

5. Set Conpiler, Server and Loaders

webpack.config.js파일을 열고 다음 내용을 추가하자. webpack 시작점을 main.js로 할것이다. 출력은 bundled된 앱이 게재 될 장소(index.html)이다. 개발서버 포트는 지금은 3000으로 하는데 원하는 것으로 변경가능하다.마지막으로 js파일을 찾아줄 babel loeaders를 설정하는 데 이전에 설치한 ᅟes2015와 react 프리셋을 사용할 것이다.

var config = {

   entry: './main.js',

   output: {

      path:'/',

      filename: 'index.js',

   },

   devServer: {

      inline: true,

      port: 3000

   },

   module: {

      loaders: [

         {

            test: /\.jsx?$/,

            exclude: /node_modules/,

            loader: 'babel-loader',

            query: {

               presets: ['es2015', 'react']

            }

         }

      ]

   }

}

module.exports = config;

package.json파일을 열고 scripts 오브젝트 안에  "test": "echo \ "Error ......"라인을 삭제하고 아래와 같은 내용으로 교체합니다.

"start": "webpack-dev-server --hot"

위의 내용을 실행하려면 webpack-dev-server가 필요합니다. 다음과 같이 설치합니다.

~/reactApp/sudo npm install webpack-dev-server -g

6. index.html

div id = "app"를 앱의 루트 요소로 설정하고 번들 패키지 파일인 index.js스크립트를 추가 합니다.

<!DOCTYPE html>

<html lang = "en">


   <head>

      <meta charset = "UTF-8">

      <title>React App</title>

   </head>


   <body>

      <div id = "app"></div>

      <script src = "index.js"></script>

   </body>


</html>

7. App.jsx and main.js

첫번째 React componet를 만들어보자. 이 component는 "Hello World!!!"를 render할 것이다.

App.jsx

import React from 'react';


class App extends React.Component {

   render() {

      return (

         <div>

            Hello World!!!

         </div>

      );

   }

}

export default App;

위의 component를 main.js로 import하여서 루트 App요소를 render 하여야 브라우저에서 볼 수 있다.

main.js

import React from 'react';

import ReactDOM from 'react-dom';

import App from './App.jsx';


ReactDOM.render(<App />, document.getElementById('app'));

Note - 다른 파일의 componet를 사용하려면 우선 import하고, 다른 곳에서 사용하게 하려면 우선 export해주어야 사용하려는 곳에서 impot할 수 있다.

8. Running thr Server

Setup을 마치고 다음 명령으로 서버를 시작 시킬 수 있다.

~reactApp/npm start


원문 문서가 작성된지 오래되어서 각 모듈들의 버전이 일치하지 않아 오류가 많이 난다.

버전을 구버전으로 나추어서 할 수도 있으나 여기까지 ReactJS프로젝트의 구조를 이해 하는 것으로 마치고

다음 문서부터는 ReactJS공식 사이트에서 최신 버전인 Create-react-app 을 가지고 학습해 보겠다.


원문:  ReactJS_turorial을 중요 포인트만 번역한 것입니다.

Previous PageNext Page




주요 용어 설명

NodeJS : 비동기(비 순차적) 이벤트 주도 JavaScript Runtime으로써 확장성 있는 네트워크 어플리케이션을 만들 수 있도록 설계되어 있음. [더 알아보기] [돌아가기].


댓글