gulp + Babel 소개 비망록

gulp + Babel 비망록



개인적인 메모로서(정보가 오래되었을 가능성이 있으므로 참고로 할 때는 주의)

gulp 설치


  • node 설치
  • 적절하게 디렉토리를 작성
  • 명령 프롬프트를 시작하고 디렉터리로 이동 ( cd C:\gulp-test )
  • C:\gulp-test> npm init
  • 여러가지 듣기 때문에 대답한다 (나중에 변경 가능하므로 모르면 Enter로 날려 OK)
  • package.json이 만들어진다
  • gulp 글로벌 설치 C:\gulp-test> npm install gulp -g
  • 오른쪽 명령으로 버전이 나오면 OK C:\gulp-test> gulp -v
  • 8로 표시된 버전을 지정 (3.9.1 부분)하여 로컬에 설치 C:\gulp-test> npm install [email protected] --save-dev
  • 오른쪽 명령으로 로컬 gulp 버전이 표시되면 OK C:\gulp-test> gulp -v

  • Babel 설치


  • ES2015 용 preset 설치 C:\gulp-test> npm install babel-preset-es2015 --save-dev
  • gulp 플러그인 Babel 설치 npm install gulp-babel --save-dev
  • babel-core 설치 npm install babel-core --save-dev
  • 디렉토리에 .babelrc를 만들고 다음을 설명합니다 (ES2015 용 사전 설정 사용).

    .babelrc
    {
      "presets": ["es2015"]
    }
    

    gulpfile 편집


  • 디렉토리에 gulpfile.js를 만들고 다음 설정을 설명합니다
  • 예를 들어 루트 바로 아래에 es2015 폴더와 js 폴더를 만듭니다
    gulpfile.js
    var gulp = require('gulp'); //gulp本体の読み込み
    var babel = require('gulp-babel'); //gulpプラグインの読み込み 今回はbabel
    
    // babel
    //各処理を実行した結果を.pipe()で次に渡してあげてる
    gulp.task('babel', function () { //このタスクにbabelって名前をつける
        gulp.src('./es2015/script.js') //変換したいES2015で記述したファイルを指定
        .pipe(babel()) //babel()でバベってくれと記述
        .pipe(gulp.dest('./js')); //gulp.dest()でファイルの書き出し 今回はjsフォルダに
    });
    

    ES2015 파일 만들기


  • es2015 폴더에 script.js 만들기 ES2015에서 여러 가지 쓰기

  • /es2015/script.js
    //class構文
    class Person{
      constructor(name, mt){
        this.name = name;
        this.mt = mt;
      }
      climb() {
        console.log(`${this.name} is climbing ${this.mt}`); //テンプレートリテラル
      }
    }
    
    let kokona = new Person('Kokona', 'Mt.Takao');
    kokona.climb();
    

    트랜스파일


  • Babel 실행 C:\gulp-test> gulp babel
  • 변환 된 파일이 js 폴더에 script.js로 만들어집니다

  • /js/script.js
    'use strict';
    
    var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
    
    function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
    
    //クラス構文
    var Person = function () {
      function Person(name, mt) {
        _classCallCheck(this, Person);
    
        this.name = name;
        this.mt = mt;
      }
    
      _createClass(Person, [{
        key: 'climb',
        value: function climb() {
          console.log(this.name + ' is climbing ' + this.mt + '.'); //テンプレートリテラル
        }
      }]);
    
      return Person;
    }();
    
    var kokona = new Person('Kokona', 'Mt.Takao');
    kokona.climb();
    

    트랜스파일을 확인해 보기


  • 시험에 적당한 html 파일을 만들어 es2015 대응하지 않는 IE11( htps : // 감가 x. 기주 b. 이오 / 코 mpa t-b ぇ / 에 s6 / )
    로 읽어보기

    할 수있었습니다

  • 덧붙여서 es2015 폴더의 script.js를로드하면 당연히 무리


    참고


  • Gulp에서 Babel을 사용해보기
  • ES6로 쓰는 환경 만들기(gulp + Babel편)
  • 좋은 웹페이지 즐겨찾기