LoginSignup
2
2

More than 5 years have passed since last update.

bebel 6 でES6モジュールを使ってみる

Posted at

引き続き、ES6でモジュールをやってみる。
まずはソースをバラバラにしてモジュール側を作ってみる。

足し算のモジュール。

src/BPlusA.js
var BPlusA = {
    doCalc(a, b) {
        var result = a + b;
        return result;
    }
};

export default BPlusA;

submitのモジュール。

src/OneForm.js
var OneForm = {
    handleClick(form, mode) {
        this.setMode(mode);
        this.doSubmit(form);
    },
    setMode(mode) {
        if (mode == 'confirm') {
            $('input[name=mode]').val('confirm');
        }
    },
    doSubmit(form) {
        form.submit();
    }
};

export default OneForm;

それらを読み込むメインのjs。

src/main.js
import BPlusA from './BPlusA';
import OneForm from './OneForm';

console.log(BPlusA.doCalc(1, 2));

$(function() {
    $('#member-form .submit-btn').on('click', function(){
        OneForm.handleClick(this.form, 'confirm');
    });
    $('#member-confirm .submit-btn').on('click', function(){
        OneForm.handleClick(this.form, '');
    });
});

んで、まず、babelにプラグイン設定をする。

npm install babel-plugin-transform-es2015-modules-commonjs --save-dev

うーん、あと.babelrcに追記。

.babelrc
{
  "presets": ["es2015"],
  "plugins": ["transform-es2015-modules-commonjs"]
}

で、一応srcからlibに生成する感じで、

babel src --out-dir lib

src以下の3つのファイルがそれぞれlibに下に生成される。

src/BPlusA.js -> lib/BPlusA.js
src/OneForm.js -> lib/OneForm.js
src/main.js -> lib/main.js

で、browserifyにbabelifyを入れる。

npm install --save-dev babelify

今package.jsonはこんな感じよ。

package.json
{
  "devDependencies": {
    "babel-plugin-transform-es2015-modules-commonjs": "^6.3.16",
    "babel-preset-es2015": "^6.3.13",
    "babelify": "^7.2.0",
    "qunitjs": "^1.20.0"
  }
}

で、実行。

browserify lib/main.js -o bundle.js -t

こうして出来たbundle.jsをブラウザから読み込めば良い。

form.php
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="../bundle.js"></script>

gruntかgulpがないとやってられないが、まあ、ファイルを分けられるので見通しよくなっていいんじゃないだろうか。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2