React + rollup.js + Babel (ES2015 + stage-2)

동기 부여



  • webpack 전부의 느낌이 피부에 맞지 않는다

  • Browserify의 단순함을 좋아하며 특별한 불평

  • rollup.js 그렇다면 제품이 가볍다고 들었습니다.
  • Rollup이 딱 좋은 느낌 - Qiita
  • browserify에서 rollup.js로 갈아 타고 있습니다.


  • 설정



    종속 모듈


    $ npm install --save-dev \
        rollup \
        rollup-watch \
        rollup-plugin-node-resolve \
        rollup-plugin-commonjs \
        rollup-plugin-babel \
        rollup-plugin-env \
        babel-preset-es2015-rollup \
        babel-preset-stage-2 \
        babel-preset-react
    
    $ npm install --save \
        react \
        react-dom
    
  • rollup plugins
  • rollup-plugin-node-resolve
  • node_modules 다음도 모듈 검색 대상이됩니다

  • rollup-plugin-commonjs
  • CommonJS 모듈을 읽을 수 있습니다

  • rollup-plugin-babel
  • 바베루
  • rollup이 토하는 것은 ES2015 이후의 나니이므로 바베 할 필요가있다

  • rollup-plugin-env
  • 환경 변수를 좋은 느낌으로 전개 (React.js 대책)


  • babel presets
  • babel-preset-es2015-rollup
  • [This is babel-preset-es2015, minus modules-commonjs, plus external-helpers.]트루코트( htps : // 기주 b. 코 m / 롯페 p / 바베 루 뿌레세 t s2015 로 ぅ p )



  • 나머지는 평소처럼

    .babelrc



    특별한 사항 없음.

    .babelrc
    {
      "presets": ["es2015-rollup", "stage-2", "react"]
    }
    

    rollup.config.js



    실수로 config file. JS의 API로 골고루도 개미.

    rollup.config.js
    import nodeResolve  from "rollup-plugin-node-resolve";
    import env          from "rollup-plugin-env";
    import commonjs     from "rollup-plugin-commonjs";
    import babel        from "rollup-plugin-babel";
    
    export default {
      entry:    "src/scripts/app.js",
      dest:     "dist/bundle.js",
      plugins:  [
        nodeResolve({ jsnext: true, main: true }),
        env({ NODE_ENV: process.env.NODE_ENV }),
        commonjs(),
        babel()
      ]
    };
    

    함정


  • rollup-plugin-env에서 React가 내부에있는 process.env.NODE_ENV 대체
  • rollup-plugin-replace 사용해도 OK

  • rollup-plugin-npm는 deprecated이므로 rollup-plugin-node-resolve 사용
  • Rollup.js를 Babel.js의 ES2015 프리셋과 함께 사용하는 경우 babel-preset-es2015 대신 babel-preset-es2015-rollup 사용

  • 소감



    세세한 감상은 제대로 한 뭔가 만들고 나서 하고 싶은 생각도 하지만, 우선 싹으로 한 녀석.

    좋은


  • 특히 불평 없음

  • gulp-rollup를 사용하면 gulpfile의 느낌은 간단하고 좋아합니다
  • watch하면 빌드도 느리지 않습니다.
  • 대규모가 될 때 어떻게 될지 모른다

  • 가와를 사용하는 만큼의 학습 비용이라면 browserify와도 큰 차이가 없고, 대체 비용도 높지 않은 것 같다(어느 방향에 대해서도)

  • 여드름



  • licensify 적이 없고 어려운
  • 슈퍼 대규모가 된 JS 앱의 지식이 별로 없기 때문에, 그에 익숙한 사람의 의견이라든지 듣고 싶다

  • References


  • rollup.js
  • Rollup이 딱 좋은 느낌 - Qiita
  • browserify에서 rollup.js로 갈아 타고 있습니다.
  • 좋은 웹페이지 즐겨찾기